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

UVJ Mailerについて教えて下さい

発言者:きよし
( Date Tuesday, June 20, 2000 12:32:17 )


ファイルメーカーからUVJ Mailerを使用してメールを送りたいのですが
送信者のメールアドレスもファイルメーカーのフィールドを利用したいのです。
しかし 情けないことにスクリプトが分かりません。

tell application "ファイルメーカー Pro"
    tell current record
        set myTo to cell "顧客アドレス"
        set myBody to cell "ご利用状況"
    end tell
end tell
tell application "UVJ Mailer"
    send mail myBody to myTo subject "Monthly Report"
end tell

上記サンプルの どこに どのようにFROMを入れてあげれば宜しいのですか?

田中求之 さんからのコメント
( Tuesday, June 20, 2000 12:39:49 )

送信者に使いたいメールアドレスが、セル "差出人" に入っていると
するならば、以下のようになります。

-- まず FMP からメールに必要なデータを読み取る
tell application "ファイルメーカー Pro"
    tell current record
        set myTo to cell "顧客アドレス"
        set myBody to cell "ご利用状況"
        set myFrom to cell "差出人" --- 差出人に使うアドレスを読み取る
    end tell
end tell

-- UVJ Mailer を使って送信
tell application "UVJ Mailer"
-- myBody の内容を
-- myTO 宛に
-- myFrom のアドレスを差出人にして
-- "Monthly Report" という題名で送る
    send mail myBody to myTo from myFrom subject "Monthly Report"
end tell

きよし さんからのコメント
( Tuesday, June 20, 2000 13:59:18 )

田中さん ありがとうございます。

>  send mail myBody to myTo subject "Monthly Report"

この部分をよく理解していなかったです。
このようなソフトやこのようなWebのおかげで 妥協していたことが
ひとつひとつ解決してきました。

今夜 UVJ Mailer に切り替えてみたいと思います。

きよし さんからのコメント
( Wednesday, June 21, 2000 00:43:49 )

もう一つ教えて下さい。
テンプレートファイルを使った送信が分かりません。
『テンプレートファイルは、普通のテキストファイルとして作成してください』
と 書いて有りますが これはSimpleText等で作成して自分の好きな
ファイル名で保存しておけば宜しいのですか?
そのファイル名を 下記サンプルの どこで参照させるのですか?

tell application "UVJ Mailer"
      send using template myTemplate to ツ
         "tanaka@aaa.bbb.jp" subject "UVJ mailer 2.0 リリース" data ツ
 {"中田", "UVJ Mailer 2.0", "http://mtlab.ecn.fpu.ac.jp/uvjmailer/"}
end tell

一生懸命説明を読んだつもりなのですが・・・
物分かりが悪くて 本当にすみません。

田中求之 さんからのコメント
( Wednesday, June 21, 2000 11:01:11 )

>これはSimpleText等で作成して自分の好きな
>ファイル名で保存しておけば宜しいのですか?

そうです。そして、myTemplate という変数がファイルを指すようにします。

set myTemplate to alias "Macintosh HD:myData:私のテンプレート"

という感じで、myTemplate にファイルの位置を指定するデータを割り当て
るわけです。

きよし さんからのコメント
( Wednesday, June 21, 2000 12:50:53 )

田中先生 いつもありがとうございます。


tell application "ファイルメーカー Pro"
  tell current record
    set myTo to cell "確定メールアドレス"
  end tell
end tell
tell application "UVJ Mailer"
  set myTemplate to alias           "PM8500:TEST:TEST1"
           send using template myTemplate to myTo subject "登録パスワード" data  ツ
               {"?????"}
end tell

上記のAppleScriptで?????(myTemplateの<@UVJ>)にファイルメーカーの
フィールドを使いたいのですが そのようなことは可能なのですか?
可能でしたらどのようにすれば宜しいのですか?
お手透きの時に教えて下さい。

田中求之 さんからのコメント
( Wednesday, June 21, 2000 13:07:14 )

>上記のAppleScriptで?????(myTemplateの<@UVJ>)にファイルメーカーの
>フィールドを使いたいのですが そのようなことは可能なのですか?

可能です。ファイルメーカのフィールド(セル)のデータを変数に読み込んで
渡せばうまくいきます。

AppleScript にあまり詳しくないようですので、参考のスクリプトを書いて
おきますと、

tell application "ファイルメーカー Pro"
  tell current record
    set myTo to cell "確定メールアドレス"
    set myData to cell "パスワード" --- myData にテンプレートに差し込むデータを収める
  end tell
end tell

tell application "UVJ Mailer"
  set myTemplate to alias "PM8500:TEST:TEST1"
  send using template myTemplate to myTo subject "登録パスワード" data {myData}
end tell

このスクリプトで、セル「パスワード」の内容が、テンプレートの中の
<@UVJ> の箇所に差し込まれることになります。

きよし さんからのコメント
( Thursday, June 22, 2000 10:27:27 )

田中先生 お忙しいところ 本当にありがとうございます。

>可能です。ファイルメーカのフィールド(セル)のデータを変数に読み込で
>渡せばうまくいきます。
>AppleScript にあまり詳しくないようですので、参考のスクリプトを書いて
>おきますと、

田中先生のお気づきのようにAppleScriptは今回初めて使いました。
ファイルメーカー単体で出来なくてあきらめてきたことが解決しそうな気がします。
UVJ Mailerはこれから凄く重宝しそうです。
myDataを複数使って 便利に使わせていただいています。

今夜はAppleScriptの本を 買いに行ってきます。
本当にありがとうございました。

おっさん さんからのコメント
( Saturday, June 24, 2000 23:27:41 )

スイマセン、便乗させていただいてもよろしいでしょうか。

私もファイルメーカーから UVJ Mailer を介してメールを送りたいのですが
スクリプトボタンでの送信後に、「このメールは送信済みです。」という意
味のチェックボックスや「**月**日に送信済みです。」のフィールドなどを
付けたいのですが、これはどのようなスクリプトで可能なのでしょうか。

初歩的な質問かも知れませんが、マニュアルを見ても良く分からなかったの
で、ご迷惑ですがご教授いただけましたら幸いです。

何卒、宜しくお願いいたします。

田中求之 さんからのコメント
( Sunday, June 25, 2000 01:10:17 )

UVJ Mailer は、スクリプトでのメールの受付と、メールの送信処理とは
独立して行うようになっています。このため、メールが無事に送信された
かどうか(あくまでもメールサーバにデータを送れたかどうかであって、
相手にメールが無事に送られたかどうかではありません)は、メール送信
時にはわかりません。

後から送信が無事にできたかどうか( UVJ Mailer でエラーになっていな
いか)を追跡調査することはできます。それで構いませんか?

おっさん さんからのコメント
( Sunday, June 25, 2000 12:36:09 )

田中センセイ様

早速のご連絡ありがとうございます。
お礼が遅くなり、申し訳ございません。

>後から送信が無事にできたかどうか( UVJ Mailer でエラーになっていな
>いか)を追跡調査することはできます。それで構いませんか?

はい、追跡調査というものができるのでしょうか。
是非、お教え願いたいと思います。
どうぞ宜しくお願いいたします。

田中求之 さんからのコメント
( Sunday, June 25, 2000 20:50:30 )

>はい、追跡調査というものができるのでしょうか。

ファイルメーカーでどのような形でスクリプトを組んだらよいのかまではわか
りませんので、一般的な説明をしておきます。

UVJ Mailer の send ... コマンド(メール送信コマンド)は、すべて、その
メールのスプール番号を返すようになっています。

たとえば

tell application "UVJ Mailer PPC"
  set myRef to send mail "Hello" to "test@aaa.bbb" subject "test"
end tell

を実行すると、myRef には "20000625203403-0002" というような文字列が収
まります。このスプール番号を使って

tell application "UVJ Mailer PPC"
  set stNum to status of mail myRef
end tell

というように status of mail コマンドを使ってもらうと、先ほど送信したメー
ルの処理状況が確認できるようになっています。

上記のスクリプトの場合、stNum には -1, 0, 1 のいずれかの整数が収まります。

-1 の場合は、メールは送信待ちの状況にあります
0 の場合は送信済みです
1 の場合は、送信処理中にエラーが生じたことを示します


ですので、メール送信の際に返されるスプール番号を控えておいて、後から、
チェックを行うようにすれば、少なくとも UVJ mailer がちゃんと処理を行っ
たかどうかは確認できます。

おっ さんからのコメント
( Monday, June 26, 2000 18:30:59 )

田中様

早速のご解答ありがとうございました。
AppleScript 初心者の私には難しそうですが、何とかできそうです。

便乗させていただき、ありがとうございました。

kiki さんからのコメント
( Thursday, June 29, 2000 00:09:08 )

おっさん さんへ:
>私もファイルメーカーから UVJ Mailer を介してメールを送りたいのですが
>スクリプトボタンでの送信後に、「このメールは送信済みです。」という意
>味のチェックボックスや「**月**日に送信済みです。」のフィールドなどを
>付けたいのですが、これはどのようなスクリプトで可能なのでしょうか。

実際UVJがエラー無くメールを送信したかどうかではなく、
ファイルメーカー側でUVJでメールしたよということでしたら、
僕は下記のようにしています。

ファイルメーカーに「メール状況」などと適当なフィールドを作り
(未送信)(送信済み)とかを入力するようにします
新規レコード作成時に(未送信)と自動で入るようにしています
メール送信する際のスクリプト手順では未送信のレコードを送信するようにします

僕の方法は・・・
「UVJでメール送信」というスクリプトを用意します
これはToなどを書くファイルメーカーでUVJを使うためのスクリプトです
それともう一つ下記のようなスクリプトを用意します

1、検索実行[記憶する]・・・・#未送信を検索します
2、Loop
3、スクリプト実行[サブスクリプト、「UVJでメール送信」]
4、レコード/検索条件/ページの移動/[最後まできたら終了、次の]
5、End Loop
6、全置換[ダイヤログなし、「メール状況」、「"送信済み"」]

これで送信したレコードが判ります
時間などを入れるのであれば「メール状況」というフィールドのアレンジで出来ますよね