UVJ Mailer 3.0 使用方法

田中求之( Motoyuki Tanaka )


Contents


インストールおよび初期設定

解凍したら、適当なフォルダを作ってその中に UVJ Mailer を置いて、ダブルクリックで起動してください。以下のようなメインウィンドウが表示されるはずです(初めて起動した際には、後述のように、Preferences ダイアログが即座に表示されます)

UVJ Mailer は、処理に必要なフォルダや設定ファイルなどを、自分と同じフォルダの中に作りますので、UVJ Mailer 用のフォルダを作っておくのがよいでしょう。

以下のようなフォルダとファイルが作られます:

(*がついたファイルは、設定によっては作られません)

UVJ Mailer は AppleScript でコントロールするアプリケーションですが、最初の設定は手動で行う必要があります。

最初に起動した際には、以下のような Preference のダイアログが現れます。ここでデフォルトのメールの送り主等の設定を行います。スクリプトなどで特に指定の無かった場合には、この Preference で設定したものが用いられます。

「省略時のメールアドレス」と「省略時に使用する SMTP サーバー」の項目は必ず設定する必要があります。

「省略時の差出人名」はメールの差出人として使われる名前です。

「省略時に使用する SMTP サーバー」は、メールの送信に使用するメールサーバを指定します。かならず、「省略時のメールアドレス」のアカウントを管理しているサーバを指定してください。

「SMTP 認証パスワード」は、SMTP 認証(SMTP Authentication)を使用する(必要とする)メールサーバの場合に設定します。この欄を空欄のままにしておくと、普通の手順で SMTP サーバへのアクセスを行ないます。「省略時のメールアドレス」に対応しているパスワード(たいていのメールサーバでは、POP サーバのパスワードになります)を設定しておくと、「省略時のメールアドレス」が使用される場合には、メールサーバに対して CRAM-MD5 による認証によってアクセスを行ないます。

SMTP の認証の方法には CRAM-MD5 以外に PLAIN や LOGIN などいくつかの方法がありますが、UVJ Mailer では、CRAM-MD5 しか対応していません。もしサーバーが CRAM-MD5 による認証に対応していない場合には、パスワードが設定されていた場合でも、通常の方法(認証なし)でアクセスを行ないます。

なお、SMTP 認証によってサーバへアクセスした場合には、下図のように、赤い小さな鍵のマークがウィンドウの右上に表示されるようになっています。

「すべてのメールをこのサーバ経由で送る」をチェックしておくと、全てのメールを、ここで設定したメールサーバを使って送りだすようにします。スクリプトのSMTP gateway の指定は無視されます。これによって、キューに複数のメールが溜まっているときには、サーバとの接続を保ったまま次々にメールを送りだすようにしますので、送信処理が短くなります。

「タイムアウト」は、サーバに接続する際に、接続をあきらめるまでの時間を秒で指定します。ダイアルアップなどの環境で使用される場合には、長めに設定して下さい。

「自動終了」というのは、UVJ Mailer が起動してから自動的に終了するまでにどれだけ間隔をあけるかを指定するものです。0を指定すると自動終了しません。

以上の Preference の設定は、UVJ Mailer と同じフォルダーの中に作られる uvjMailer.pref というファイルに記録されます。設定を変更する場合には、Edit メニューのPreference を選んでください。

以上で準備完了です。以下、使用方法ごとに使い方を簡単に説明します。


UVJ Mailer の使い方

UVJ Mailer は AppleScript によって操作を行うことを目的に作成したソフトです。UVJ Mailer のスクリプトの書き方については、「UVJ Mailer Scripting」をご覧ください。

以下、この文書では、AppleScript 以外での利用方法や、ソフトの管理・設定機能についての説明を行います。

ウインドウに表示される情報

具体的な使用方法に入る前に、メインウィンドウに表示される情報について説明しておきます。ウィンドウには、フクロウのキャラクター以外に3つの数字と日時が表示されるようになっていますが、これは以下のような情報を表示しています。

メール送信処理を行っている最中は、フクロウのキャラクターが、処理の進行状況に応じて以下のように変化します。

サーバへ接続中 サーバとの間で
送信の手続き中
メールのヘッダ
情報を送信中
メールの本文を
送信中
サーバとの接続
を切って後始末中

手動でメールを送る

File メニューの「New Mail...」を選ぶと、以下のようなダイアログが現れますので、ここでメールを書いて、Send ボタンをクリックすれば、そのメールが即座に送信されます。

なお、REALbasic の機能的な制約により、日本語のインライン入力は行えません。また、日本語を入力している際にいまいち安定性にかけるようです。ですから、この機能は、テストのためのメール送信などのための機能だと割り切って使ってください。

Drag & Drop で送信

UVJ Mailer は Drag & Drop に対応しています。

Finder 上で UVJ Mailer にテキストファイルを Drop すると、そのファイルの内容をメールとして送信しようとします。メールの差出人は、Preference で設定したものが使われます。

普通のテキストファイルを Drop すると、以下のような設定のウィンドウが現われます。ここで送り先などを設定して、送信をクリックすれば、ファイルの内容をメールとして送信します。

Binhex ファイルを Drop した場合には、そのファイルを添付ファイルの形式で送信することが可能です。その際には、メッセージを添えることが可能です。

「添付ファイルとして送信」をチェックすると、Binhex のファイルが添付ファイルとして送られます。また、このとき「ファイルに添えるメッセージ」の欄が使えるようになりますので、ここにメッセージを書いておくと、ファイルと一緒にメールで送られます。

なお、この添付ファイルとして送信する場合、受け取る人のメールソフトがMIME 形式の添付ファイルを認識でき、また Binhex 形式のデータを扱える必要がありますので注意してください。最近の Mac のメールソフトであれば問題はないと思いますが、WINDOWS や UNIX のユーザー、あるいは古いメールソフトを使っている人などは、添付ファイルとして受け取れないことになります。

UVJ Mailer のウィンドウに、他のアプリケーションから、Drag & Drop でデータを渡すことも可能です。この場合は、渡されたデータをメールの本文として送ろうとします。

このとき、データの1行目が "To:" で始まり宛先のメールアドレスが書かれており、2行目が "Subject:" で始まりメールの題名が書かれていた場合には、3行目以降をメールの本文と見なして、メールとして送信するようになっています。つまり、

To:motoyuki@fpu.ac.jp
Subject:Drag&Dropされたテキストの送信
これはDrag&Dropされたテキストのメール送信のテストです

というテキストデータを Drag & Drop した場合には、メールの設定ウィンドウは現われず、motoyuki@fop.ac.jp あてに、題名が「Drag&Dropされたテキストの送信」で、本文が「これはDrag&Dropされたテキストのメール送信のテストです」というメールが送信されることになります。

テキストファイルをウィンドウに Drag & Drop した場合には、テキストデータを Drag & Drop した場合と同じように扱うようになっています。つまり、1行目が "To:" で宛先を指定し、2行目が "Subject:" で題名を指定、3行目以降が本文になっているテキストファイルがあった場合、アプリケーションに Drag & Drop した場合にはファイルの中身がそのまま本文と見なされますが、ウィンドウに Drag & Drop した場合には宛先と太明の指示に従って処理が行われることになります。

Drag & Drop の代わりに、クリップボードにテキストデータをコピーしておき、UVJ Mailer の Edit メニューの「Send Clipboard」を選ぶことで、テキストデータをメールとして送信することも可能です。

日本語メールの送信用 CGI として使用する

UVJ Mailer を、日本語のメール送信用の CGI として利用することができます。

UVJ Mailer のエイリアスを作成し、そのエイリアスの名前をmail.acgi のようにCGIとして機能するのに適した名前に変更して、Web サーバーのフォルダー(ルートフォルダー等の CGI に適した場所)に入れておきます。名前は CGI に適したものであれば、好きに付けてもらって構いません(半角アルファベットで、スペースや特別な記号は含まず、拡張子が .acgi になっている、というのが条件です)

*UVJ Mailer そのものの名前を変更して使用することも可能ですが、UVJ Mailer の設定ファイルなどがすべて Web サーバーのフォルダーの中に作られることになりますので、セキュリティなどの点でこの方法はお勧めできません。

セキュリティの設定

UVJ Mailer を単純に CGI として動かした場合、第3者にメール送信機能を悪用される危険が生じます。そこで、UVJ Mailer では、予め指定しておいた URL のページからの投稿しか処理しないように制限を加えることができます。これによって、spam の送信などに UVJ Mailer が悪用されるのを防ぐことができます。

まず、何も設定を行わないで UVJ Mailer を CGI として動かしたときには、メールの宛先が UVJ Mailer で設定したメールアドレスに強制的に変更されます。後で述べるように、FORM の中でメールの宛先を指定することも可能なのですが、その指定は一切無視されます。

UVJ Mailer と同じフォルダの中に mail_CGI_URL という名前のテキストファイルを作り、そこにメール送信用の FORM を使うページの URL を書いておくことで、このファイルに載っている URL 以外からのメール送信処理を拒むようになります。

mail_CGI_URL には、1行に1つずつ、メール送信フォームを用いているページの URL を書いておいてください。相対パスでの記述は不可です。かならず、http:// のスキームの部分から、フルに書いておいてください。

UVJ Mailer は mail_CGI_URL を起動時に読み込むようになっています。また、 mail_CGI_URL に URL を追加した場合などは、Admin メニューの「Reload CGI URL」を選ぶと、ファイルの内容を読み込み直します。

UVJ Mailer は、ブラウザから Web サーバに渡された Referer (どのページから CGI の処理が呼ばれたかを示す)の値を mail_CGI_URL に書かれた URL と較べてチェックを行うようになっています。ですから、Referer を Web サーバに知らせないブラウザの場合には、このチェックをパスすることができません。それでは困る場合もあるでしょうから、このような場合は、メールの宛先を強制的に UVJ mailer のデフォルトのものに変更し処理を行うようになっています。

身に覚えの無いメールをまき散らされたりしないよう、上記のセキュリティの設定を必ず行ってください。また、以下の FORM の説明は、このセキュリティの設定ができたものとして行っていきます。

メール送信用 FORM

メールの送信用には以下のような Form を用います。METHOD は必ず POST を指定してください。そして ACTION で UVJ Mailer のエイリアスを指定します

<FORM METHOD="POST" ACTION="mail.acgi">
To:<INPUT TYPE=TEXT NAME="to" SIZE=60><P>
Subject:<INPUT TYPE=TEXT NAME="subject" SIZE=40><P>
Body:<BR><TEXTAREA NAME="body" ROWS=10 COLS=70></TEXTAREA><P>
<INPUT TYPE=SUBMIT VALUE="POST">
</FORM>

最低限必要なフィールド(入力欄)は BODY を指定するものです(このときは、メールの宛先は UVJ Mailer に設定したアドレス、Subject は "Mail from CGI" となって送られます。

FORM でメールの設定に用いることができるフィールドは、以下のものがあります。

これ以外の名前のフィールドのデータは、BODYが設定されていた場合には無視されます。しかし、BODY が無かった場合には、上記のメールの設定に含まれないすべてのフィールドのデータを、メールの本文として送るようになっています。

ですから、アンケートページなど、複数の入力欄や選択欄のあるページのデータをメールとして送りたい場合には、NAME="BODY" のフィールドを使わないように気をつけてください。

replyを省略した場合は、UVJ Mailer が簡単なメッセージを返すようになっていますが、できるかぎり、メール送信後のページを用意して replyとして HIDDEN のフィールドでデータを渡すようにしてください(Redirect の指示を返すようになっています)

参考例:<INPUT TYPE=HIDDEN NAME="reply" VALUE="http://mtlab.ecn.fpu.ac.jp/webcon.mtxt">

管理機能

CGI 機能を使って、メールの発信状況や Timer の確認/実行を行なうことができるようになっています。この機能を利用するためには、下図のように、UVJ Mailer のエイリアスを作り、admin_uvjmail.acgi という名前で Web でアクセスできる所に置いておきます。

セキュリティの点で、admin という文字列に REALM を設定し、普通のユーザーはアクセスできないようにしておいてください。

path-args にメールのスプール名を渡すと、そのメールが、現在、どのような状況にあるのかを確認することができます。たとえば、

http://your.host/admin_uvjmail.acgi$20020329015058-0001

という URL でアクセスを行なうと、スプールのファイル名が 20020329015058-0001 として処理されたメールが、現在、どのようになっているのかを確認することができます。

また、path_args を無しにして

http://your.host/admin_uvjmail.acgi

という URL でアクセスを行なった場合には、Timer の一覧が表示され、Timer の実行を指示することができるようになっています。


管理機能

UVJ Mailer のメニューから呼びだして利用する管理機能の説明を行います。

アドレスブック

メールの宛先のアドレスをアドレスブックに登録しておき、ニックネームで指定することが可能です。

File メニューの Address Book... を選ぶと、以下のようなダイアログが現われます。ここに登録したニックネームが表示されます。

New をクリックすると、以下のような登録用のダイアログが現われますので、ここで登録を行ってください。複数のアドレスを一つのニックネームで登録しておくことも可能です。

登録されたニックネームは以下のように表示されます。

メール送信の際に、To で指定されたニックネームとアドレスブックとの照合が行われ、実際のメールアドレスに置き換えるようになっています。

File メニューの New Mail でのメール送信や、Drag & Drop されたものの送信設定の際には、メール作成のダイアログの To の欄の横に、アドレスブックに登録されている名前がポップアップメニューとして現われます。

AppleScript によるメールやファイルの送信の際にも、アドレスブックで登録した名前を利用することができます。

処理の中断

Admin メニューの Suspend Job を選び、チェックマークがついた状態にすると、一切の送信処理および後述の Timer 処理を中断します(新規メール作成は行えます)。

処理が中断されているときには、以下のように、フクロウのキャラクターがグレースケールで薄く表示されます。

処理の記録

Admin メニューの Transaction Log を選びチェックマークがついた状態にしておくと、メール送信処理の記録をログファイルに記録するようになります。ログファイルは uvjMailer.log という名前で、UVJ Mailer と同じフォルダーの中に作られます。

送信待ちメールの確認

処理を中断した状態の時、Admin メニューの Queue... を選ぶと、送信待ちになっているメールを確認する以下のようなダイアログが現われます。

Delete をクリックすると、選択されたメールを削除することができます。いったん削除したメールを復活させることはできませんので注意してください。

エラーの処理

メール送信の際にエラーが生じたものについては、Error List で確認することができます。

Admin メニューの Error... を選ぶと、エラーが起きていた場合には、以下のようなエラーのリストを表示するダイアログが現われます。

項目を選択して Show をクリックするか、項目をダルブクリックすると、以下のような具体的なエラーメッセージとメールの内容が表示されたダイアログが現われます。

ダイアログの一番上にエラーが起きた日時、その下にエラーの内容が表示されます。

再送信ボタンをクリックすると、このメールを再び送信しようとします。エラーの原因となったと思われる項目を修正の上クリックしてください。

削除ボタンをクリックすると、エラーリストからこのメールを削除します(メールのデータはすべて失われます)。


予約メール

予約メールとは何か

予め指定しておいた日時になるとメールを発送する機能です。新年などのイベントの挨拶や、あるいは自分宛にリマインダーを送るといった使い方ができます。

設定方法

スクリプトでの設定方法は、スクリプトの解説の方をご覧ください。ここでは、マニュアルで指定する方法を説明します。

UVJ Mailer が Suspend (処理を中断)の状態の時、Admin メニューの Scheduled を選ぶと、予約メールの状況を確認する以下のようなダイアログが現われます。

UVJ Mailer が Suspend の状態(フクロウがグレーで表示されている状態)でしか呼び出せないようになっています。

New をクリックすると、以下のような新規の予約メールを作成するダイアログが現われます。

一番上の部分で、送信する日時を設定します(ダイアログが開いた時点の日時が予め入力されているようになっています)。時間は24時間制で指定してください。なお、当たり前ですが、過去の日時を指定することはできません。

宛先の指定や、本文を記入の上、[予約]ボタンをクリックすると、メールが予約されます。

SMTP 認証を使ってサーバにアクセスする際には、[アドレス]欄にメールアドレスを記入し、[SMTP 認証パスワード]の欄にパスワード(普通は[アドレス]欄に記入したメールアドレスの POP サーバのパスワードです)を入力してください。

ダイアログ下部のタブ・パネルの File の方を選択すると、ファイル送信(テキストファイルの中身をメールの本文として送る)によるメールの作成が可能です。

UVJ Mailer は、メールを予約した時点ではファイルの読み込みは行ないません。実際の送信処理の時点でファイルを読み込みます。ですから、メール送信を予約した後にファイルが削除されていた(あるいは名前や場所が変わってしまっていた)場合には、エラーになり、メールの送信処理は行われません。この点は注意してください。

メールが予約されると、予約メールダイアログに、以下のように、送信日時と宛先、そして件名が表示されます。

このダイアログで、メールを選択して[Delete]ボタンをクリックすれば、いったん予約したメールを削除することができます。

いったん登録したメールの内容や設定を変更することはできません。

予約メールの情報は、UVJ Mailer と同じフォルダに作られる scheduled フォルダーの中に、メール毎のファイルの形で蓄えられるようになっています。

なお、UVJ Mailer は、何もしていない状態の時には、10分の1秒ごとに、その時点に発送を予約されているメールがあるかどうかをチェックするようになっています。しかし、メールの送信中は、送信が完了するまで予約メールのチェックを行ないません。ですから、場合によっては、予約した日時より多少遅れて発送される場合があります。この点は、あらかじめご了承ください。

また、UVJ Mailer が指定した時間に起動していないと(動いていないと)メールは送られません。もし UVJ Mailer が起動した時点で、予約された日時が過去になっているメールがあった場合には、そのメールを即座に送信するようになっています(廃棄することはありません)。


Timer

Timerとは何か

Timer というのは UVJ Mailer では次のような機能を意味します。

1時間に1回、決められた時間(分)になると、指定された処理を行う。

この場合の処理として、以下のようなものを指定できるようになっています。

たとえば、サーバーのログファイルや会議室の書き込みを定期的に管理者に送る、夜中にサーバーのメンテナンス用スクリプトを走らせる、サーバーのステータスのチェックを行う等の使い方ができます。

設定方法

Admin メニューの Timer を選択すると、現在登録されている Timer 処理のリストがあらわれます。

パネル左下の「Add File」「Add Folder」「Add Event」が新しい Timer 処理作成用のボタンです。

File Timer・Folder Timerの設定

最初にファイルまたはフォルダーを選ぶように指示してきますので、定期的にチェックを行いたいファイル/フォルダーを選んでください。

ファイルの選択を行うと、以下のような細かな条件を設定するパネルが現れます。

一番上にチェック対象のファイル/フォルダのパスが書かれています。

Header は、ダイジェストの対象を送りだす際に、メールの先頭部分に追加する文面を書いたファイルのことです。ニューズレターのように定型的な文面で始めるメールにする際に使用します。ボタンをチェックしてから、右の Select を使って、ヘッダーをかいたファイルを指定します。

Footerは、ダイジェストの末尾に追加する文面を書いたファイルです。使用する場合は、チェックしてから、ファイルの選択を行ってください。

Schedule は、毎時何分にチェックを行うかを指定します。1時間に一回、ここで指定された分になるとチェックします。0〜59の間の整数で指定してください(60 を指定した場合には、その処理がパスされるようになりますので、一時的に処理を止めたいときには 60 を指定してください)。

チェックを行う時間帯を限定することができます。デフォルトでは0時台から23時台ということで、つまりは24時間常にチェックを行うようになっていますが、たとえばここを[0時〜6時]にすると、夜の12時台のチェックを最初に、朝の6時台のチェックまでの、合計7回のチェックのみを行うようになります。[22時〜3時]のように、連続していれば日付が変わっても構いません。なお、時間は24時間制で指定します。

メールに関する設定の部分は通常のメールと同じ項目が並んでいますが、Subject に関して以下のオプションが用意してあります。

OK をクリックすると、Timer が登録されて、チェックが行われるようになります。

Event Timerの設定

最初にファイルを選択すると、設定用のパネルが現れます。選択したファイルの種類によって、設定項目の選択範囲が変わります。

普通のファイル(アプリケーションやコンパイル済みスクリプトではないもの)の場合、Launch しか選択できません。これはファイルを定期的に起動する(Finder でファイルをダブルクリックしたのと同じ動作になる)処理を行わせるものです。schedule の部分で処理を行う時間を設定します。

AppleScript のコンパイル済みスクリプトの場合には、新たに Run という選択が可能になっています。Run を選んでおくと、スクリプトが実行されます。Launch の場合は、Finder でのダブルクリックと同じ(→スクリプトエディタで開かれる)です

アプリケーションの場合には、すべてのオプションが選択可能になります。

なお、UVJ-Event を受け止めるハンドラーは以下のようになります

on ヌevent XUVJtimeネ myMsg
  --- ここに処理が入る
end ヌevent XUVJtimeネ

ヌ = option + \
ネ = option + shift + \

Timer の変更・削除

登録されているTimerは、Timer List ダイアログで確認できます。リストの項目を選んで Info ボタンをクリックするか、リストの項目をダブルクリックすると、設定内容を変更できます。また、Delete で削除も行えます。さらに Do Now ボタンをクリックすると、Timer で指定された処理を即座に行います。


最後に

UVJ Mailer のサポートは私のサイトの以下の会議室で行います。分らないことなどありましたら、遠慮なく訊ねてください。

Web Scripter's Meeting


UVJ Mailer のホームページ