このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

アップルスクリプトでメールを送る

発言者:鵜飼
( Date Friday, March 24, 2000 21:49:55 )


AppleScript リファレンスを買って、AppleScriptの勉強を始めました。
しかし本に記載の以下の文がを実行すると、新規メッセージが出来て送信箱にははいるのですが、その後 Eudora Proが終了してしまい、タイムアウトになり
ます。
あと予約内容の部分をファイルメーカーからの検索結果を織り交ぜた文章に
したいのですが、その場合リファレンスのどこがヒントになりますか?教えて
下さい。
Eudora Proは Eudora Pro 4.2-JでOS は8.6です。実行した構文は以下の通りです。

tell application "Eudora Pro"
  set myNewMail to make message at the end of mailbox "out" with invisible
  set field "To:" of myNewMail to "jin@taiyo-travel.co.jp"
  set field "Subject:" of myNewMail to "お問い合わせ内容の確認"
  set body of myNewMail to "予約内容"
  queue myNewMail
  connect
end tell

この本田中さんも執筆されているんですね。

田中求之 さんからのコメント
( Friday, March 24, 2000 22:16:42 )

Eudora が終了するというのはおかしいです(バグかな?)

私は 4.2 は使っていないのですが(まだ信用できない)、最近出た新しい
ベータ版で試してみるのもよいかも知れません。

なお、UVJ Mailer をお使いだったと思いますので、UVJ mailer を使って
直接送信してしまうこともできますよ(アップルスクリプトでメールを送るなら)

鵜飼 さんからのコメント
( Friday, March 31, 2000 17:21:09 )

せっかくお返事いただいたのにレス遅くてすみません。
UVJ Mailerで返信するときに送られてくるメールの内容を
編集する方法はありますか?
顧客からの依頼を受ける場合はいいのですが、顧客に確認
のメールを流すときは内容を編集してから送らなければな
りません。
教えてください。

田中求之 さんからのコメント
( Friday, March 31, 2000 22:56:55 )

>UVJ Mailerで返信するときに送られてくるメールの内容を
>編集する方法はありますか?

どのような作業の流れなのでしょうか? メールの内容を編集して送るという
ことでしたら、自動送信は必要ないのではありませんか?

具体的な作業(処理)の流れを説明しておいただければ、もう少し具体的なコ
メントが可能だと思います。

鵜飼 さんからのコメント
( Saturday, April 01, 2000 21:36:53 )

顧客からデータベースに問い合わせがあります。それに対してデータベースが
回答します。それに対して顧客がさらに詳しい問い合わせをします。ここがメールで当社へ送信されます。その時にその問い合わせの内容について確認
のメールを送りたいのです。(自動で)
当社は旅行業で顧客からの問い合わせを常に確認して回答しないとトラブルに
なることが多いのです。確認のメールを自動発信するときに、問い合わせの内
容、当社の規定等を付加して、自動送信したいのです。
FMにもメール送信機能がついてますが、フィールドに入力された定型分は付加
できますが、複数のフィールドを設定できないように思います。(できるのか
も知れませんがマニュアルには書いてません。)
そこでCGIを含む他の方法がないかと考えています。

田中求之 さんからのコメント
( Sunday, April 02, 2000 05:51:01 )

>それに対して顧客がさらに詳しい問い合わせをします。ここがメールで当社>へ送信されます。

送られてきたメールに対して自動的に情報を付加して返信したい、という
ことなんでしょうか?

…福井の方でしたら、私が直接出向いて CGI を書いてもいいんですがね…

鵜飼 さんからのコメント
( Sunday, April 02, 2000 12:23:58 )

残念ながら三重県です。でも依頼できるなら福井までいった方が
早い様な気がしてきました。
説明が下手ですみません。
FMPで旅行の商品情報を公開してます。
↓
それに対して問い合わせがあります。
この問い合わせはデータベースに登録されます。
(A商品の何日発は空いてますか?)
↓
その回答をする前に、自動で
(・・さん A商品の問い合わせありがとうございます。
・・月・・発の問い合わせで良かったですよね?
それとこれが当社の規定ですのでよんでくださいね。>リンク)
みたいなメールを発送する。(登録された情報をもとに)
↓
もう一つ、・・さんから問い合わせがあった事を担当者にメールで
知らせる。(このとき登録画面に担当者を選ぶラジオボタンみたいのが
あってチェックされた所にメールが行く仕組みが作りたい)
↓
担当者はメールを読んで回答を・・さんに発信する。

これがわたしのしたいことの全貌です。
もし本当にCGIをつくってくれるのなら福井までいっても良いくらい
困ってます。(三重県にはマックサーバーのことがわかる人が全く
いません。業者さんも含めて)


→  http://www.taiyo-travel.co.jp

田中求之 さんからのコメント
( Sunday, April 02, 2000 13:37:50 )

問い合わせがデータベースに書き込まれるわけですよね?

でしたら、書き込まれたデータを下に、確認用のメールの内容を計算フィールド
で組み立て、それを問い合わせをした人に対してメールで送ると同時に、
そのメールを Bcc で担当者にもメールする、っていうのではダメなんでしょうか?

>このとき登録画面に担当者を選ぶラジオボタンみたいのが
>あって

これはユーザーが担当者を選ぶということなんでしょうか?


もしかしたら、勘違いをしているのかもしれませんが、問い合わせがあって
から(データベースに問い合わせが書き込まれてから)、その人と担当者に
メールするまでは、すべて自動化するのですよね? それとも、その間で、
人によるチェックを行うのでしょうか?

鵜飼 さんからのコメント
( Sunday, April 02, 2000 13:44:26 )

FMPの計算フィールドで文章をつくるということですね。やってみます。
ありがとうございます。

>
もしかしたら、勘違いをしているのかもしれませんが、問い合わせがあって
から(データベースに問い合わせが書き込まれてから)、その人と担当者に
メールするまでは、すべて自動化するのですよね? それとも、その間で、
人によるチェックを行うのでしょうか?

そうです。

これはユーザーが担当者を選ぶということなんでしょうか?

そうです。

田中求之 さんからのコメント
( Sunday, April 02, 2000 14:59:34 )

でしたら、ユーザーが選んだ担当者を割り出して、その人にメールを送る
という処理を組み込む必要がありますね。ファイルメーカーのスクリプト
機能だけで可能なのかな?

ファイルメーカについては、私は単純なデータベース機能しか使っていま
せんので、ファイルメーカーに備わっている機能を使ってどこまで可能な
のか判断できませんが、AppleScript で CGI を組めば、ご要望のような
仕組みを作ることは可能です。ただし、一分間に何百人もが申し込むよう
な処理には向いていませんが。

よーちゃん さんからのコメント
( Sunday, April 02, 2000 15:55:39 )

鵜飼さんこんにちは。
ホームページも拝見しました。
おやりになりたい事はAppleScript や CGI を使わなくても FMP のみで処理
できますよ。

1.問合せフォームの中にメール送信用の CDML も書いておく。

2.-mailformat 用のテキストファイルを用意してこの中に必要なお客さんの
 情報や(CDMLで記述)注意事項等を記述(このテキストファイルの中身が
 メール本文になります。)

3.お客さんがPOSTした時点でお客さんと担当者にメールが送信されます。

詳しくは FMP の CDMLリファレンスを調べてみて下さい。それほど難しくな
いと思いますよ。

鵜飼 さんからのコメント
( Sunday, April 02, 2000 17:49:53 )

よーちゃん様ありがとうございます
CDMLリファレンスによると
<form action="FMPro" method="post">
間省略
<input type="submit" name="-View" value="電子メールを送信">
</form>
というのが例として書いてあります。しかし最後の電子メールを送信
のところの nameに2つのアクションタグをつけることは可能ですか?
(-new、-View)その場合の書き方を教えていただけませんでしょうか?

あと  
<input type="hidden" name="-Format" value="record_detail.html">
<input type="hidden" name="-MailTo" value="[FMP-Field: 電子メールアドレス]">
<input type="hidden" name="-MailCC" value="[FMP-Field: dairiten::email]">
みたいなのはどこに書けばいいのでしょうか?
あまりタグの書き方が判らないので、とんちんかんな事ばかり聞いているのかもしれませんが教えてください。
光が見えてきています。見捨てないで下さい(厚かましいかもしれませんが)
宜しくお願いします。

よーちゃん さんからのコメント
( Sunday, April 02, 2000 18:58:24 )

メール送信は -new でも実行されますので、今の submit ボタンそのままで
FMP へのデータ書き込みとメール送信を同時に実行できます。

書く場所は <form>〜</form> の間のどこでもかまわないと思います。

と、ここまで書いて気がついたのですが、重要な注意点があります。
送信をさせる HTML に -DB で指定している FMPファイルの中に CDML で指定
しているフィールドがあり、データも存在している必要があります。(あたえ
まえですが)

お客さんのメールアドレスはポストした時点で初めて書き込まれるのでそれま
では、データとしてはないので(dairiten::emailも)送信されません。
手としては、一度データを書き込んでもらって次のフォーマットファイルで
メールアドレスの確認等を行うようにして、そのフォームからメールを送信
するようにしないと、だめかもしれません。
メール送信の為に入れた CDML の一ケ所でも無効なフィールド指定やフォー
マット指定があるとメール送信自体が実行されませんので、注意して下さい。
CC や BCC 一つが無効でも一切送信しないのです。
がんばって下さい。


kiki さんからのコメント
( Sunday, April 02, 2000 23:26:22 )

こんばんは・・・

>一度データを書き込んでもらって次のフォーマットファイルで
>メールアドレスの確認等を行うようにして、そのフォームからメールを送信
>するようにしないと、だめかもしれません。

書き込みと同時に登録されているメールアドレス(オーナー)へメール送信されますが、
登録されていないメールアドレス(新規書き込み)へ送信させるのであれば
書き込み主にもう一度フォームボタンを押してもらう必要があると思います。
しかし、Webではその作業をしないクライアントもいます。

自分のところでやったことのある例を書きます
オーナーへはクライアントの書き込み時にメールを送信します。
クライアントへのメール送信はタイマーソフトを利用しました。
起動時にメールを送信するスクリプトだけを動かすFMPを作って
書き込みから5分以上たった内容を送信していました。
タイマーソフトは1時間に1回作動させていました。
このほうが確実にクライアントへメールを送信してくれます
もちろん送信したレコードには送信済みのチェックを入れて2回送信しないようにしておきました。

自動化するのはクライアントが何か作業をしてくれないとできないので
なるべくクライアントに作業させないほうが間違いが無いですよ


鵜飼 さんからのコメント
( Monday, April 03, 2000 08:59:57 )

タイマーソフトとは、どういうものですか?
applescriptとかでつくるんでしょうか?
FMPのスクリプトでできるんでしょうか?

kiki さんからのコメント
( Monday, April 03, 2000 10:34:56 )

タイマーソフト:
僕の場合は「有限会社スマートコンセプト」さんの「FlightPlan」を
利用させていただきました。


→  スマートコンセプトさんのページ

wamu さんからのコメント
( Monday, April 03, 2000 10:43:36 )

利用者は大概の場合、Weg制作者の意図しない行動にでます。よって、
2回ボタンを押して下さらない利用者がかならずいます。
で、私の場合は以下のような手段でこれを回避しました。

初めにメールアドレスの書き込みを行わせて時点で-scriptを埋め込んで
おいてFileMaker側(CDMLでなく)でメール送信のスクリプトを書いておき
メールを送ってはどうですか?
メーラーとしてEUDRAかクラリスメールが必要ですが、一回ボタンを
押させるだけでデータの登録とスクリプトの起動を指定でき、
おやりになりたいことができるかもしれないです。


鵜飼 さんからのコメント
( Thursday, April 06, 2000 00:04:45 )

田中さん・よーちゃん・キキさん本当
ありがとうございました。文章作成はよーちゃんの方法、
発信はタイマーソフトで解決しました。
本当にありがとうございます。
当社ホームページの収益でわたしが億万長者になったら
きっとこのサイトに恩返しをします。(なったらですが)
助かりました。今後ともお願いします。