oof.mrkというプレインASCIIテキストファイルは、自動応答の結果として配信されるメール内容を定義するためのテキストファイルです。自動応答スクリプトが自動応答によって実行されると、スクリプトファイルが処理され、マクロがスキャンされ、自動応答のきっかけとなったメールからの実際のデータへ置き換えられます。"#"から始まる行は、コメントとして無視されます。
以下のサンプルスクリプトや、MDaemonの\app\フォルダのoof.mrkファイルを参照して下さい。
$HEADERS$ |
このマクロは、受信メッセージのヘッダの全部と置き換えられます。すぐこのマクロの前のテキストは、各展開する行の開始時に複製されます。 |
$HEADER:XX$ |
このマクロは、"xx"で指定したヘッダの値として展開されます。例えば:受信メールへ"TO: joe@example.com"というヘッダがある場合、$HEADER:TO$マクロはjoe@example.comに展開します。元のメールに"SUBJECT: This is the subject"があると、$HEADER:SUBJECT$マクロは"This is the subject"で置き換えられます。 |
$BODY$ |
このマクロはメッセージ本文へ置き換えられます。異なった言語のキャラクタセットを保持する方法として、MDaemonはメッセージ本文を純粋なテキストではなくバイナリデータとして読み込みます。その結果として、メッセージ本文のバイトレベルでのコピーができるようになります。 |
$BODY-AS-TEXT$ |
$BODY$マクロと同様、このマクロはメール本文全体を展開しますが、メッセージ本文をバイナリではなくテキストとして読み込む点が異なります。このマクロテキストは、各展開する行の開始時に複写されます。つまり、スクリプトは">>$BODY-AS-TEXT$"を用いて、生成されたメールの各行を複写しますが、各行は">>"から開始されます。テキストをこのマクロの右に追加することもできます。 |
$SENDER$ |
このマクロは、受信メッセージの"From:"ヘッダに含まれるフルアドレスを決定します。 |
$SENDERMAILBOX$ |
このマクロは、送信者のメールボックスです。メールボックスは、"@"シンボルの左に対するメールアドレスの部分です。 |
$SENDERDOMAIN$ |
このマクロは、送信者のドメインです。これは、"@"シンボルの右のメールアドレスの部分です。 |
$RECIPIENT$ |
このマクロは、メッセージ受信者のフルアドレスを決定します。 |
$RECIPIENTMAILBOX$ |
このマクロは、メッセージ受信者のメールボックスです。メールボックスは、"@"シンボルの左に対するメールアドレスの部分です。 |
$RECIPIENTDOMAIN$ |
このマクロは、メッセージ受信者のドメインです。これは、"@"シンボルの右のメールアドレスの部分です。 |
$SUBJECT$ |
このマクロは、"Subject:"ヘッダの値です。 |
$MESSAGEID$ |
Tのマクロは、"Message-ID"ヘッダの値です。 |
$CONTENTTYPE$ |
このマクロは、"Content-Type"ヘッダの値です。 |
$PARTBOUNDARY$ |
このマクロは、マルチパートメッセージ用の"Content-Type"ヘッダの中のMIME"Part-Boundary"の値です。 |
$DATESTAMP$ |
このマクロは、RFC-2822スタイル日付-タイムスタンプ行に展開します。 |
$ACTUALTO$ |
メッセージの中には、再フォーマットやエイリアス変換に先立って、オリジナルユーザによる宛先メールボックスやホストを示す"ActualTo"フィールドを含むものがあります。このマクロはその値を置き換えます。 |
$ACTUALFROM$ |
メッセージの中には、再フォーマットやエイリアス変換に先立って、オリジナルのメールボックスやホストを示す"ActualFrom"フィールドを含むものがあります。このマクロはその値を置き換えます。 |
$REPLYTO$ |
"ReplyTo"ヘッダで検出した値です。 |
$PRODUCTID$ |
MDaemonのバージョン情報の文字列です。 |
$AR_START$ |
自動応答の開始日時を返します。 |
$AR_END$ |
自動応答の終了日時を返します。 |
以下は、自動応答メッセージのヘッダをコントロールマクロの一覧です。
%SetSender%
例: %SetSender%=mailbox@host.org
実際に自動応答メッセージ、このマクロは、自動応答メッセージヘッダを作成する前に、本来のメッセージの送信者を再設定します。このように、このマクロは、自動応答メッセージのTOヘッダをコントロールします。例えば、本来のメッセージの送信者が"pooky@domain.com"で、受信者の自動応答者は、それを"user2@example.com"に変えるために、%SetSender%マクロを使用するある場合、自動応答メッセージのTOヘッダは、"user2@example.com"にセットされます
%SetRecipient%
例: %SetRecipient%=mailbox@host.org
実際に自動応答メッセージ、このマクロは、自動応答メッセージヘッダを作成する前に、本来のメッセージの宛先を再設定します。このように、このマクロは、自動応答メッセージのFROMヘッダをコントロールします。例えば、本来のメッセージの受信者が"michael@example.com"で、Michaelのアカウントをmichael@example.comに変える%SetRecipient%マクロを使用する自動応答者を持つ場合、自動応答メッセージのFROMヘッダは、"michael.mason@example.com"にセットされます。
%SetReplyTo%
ex: %SetReplyTo%=mailbox@example.com
自動応答メッセージのReplyToヘッダの値をコントロールします。
%SetSubject%
ex: %SetSubject%=Subject Text
本来のメッセージのサブジェクトの値を置き換えます。
%SetMessageId%
ex: %SetMessageId%=ID String
メッセージのID文字列を変更します。
%SetPartBoundary%
ex: %SetPartBoundary%=Boundary String
boundaryを変更します。
%SetContentType%
ex: %SetContentType%=MIME type
メッセージのcontent-typeを示された値に変えます。
%SetAttachment%
ex: %SetAttachment%=filespec
指定されたファイルを、新しく生成された自動応答メッセージに添付します。 添付ファイル 画面 で指定されたファイルのみが自動応答に添付されます。
自動応答スクリプトマクロを用いた、シンプルなoof.mrkと呼ばれる自動応答スクリプトは、次のようなものです。
$SENDER$ 様
ただいま休暇中につき、'$SUBJECT$'に関するメールを読むことができません。
宜しくお願いします。
$RECIPIENT$
さらに、ヘッダ置換マクロを使ってこのスクリプトを展開し、$SENDER$宛てに返信する自動応答メールのヘッダの一部をコントロールできます。
$SENDER$ 様
ただいま休暇中につき、'$SUBJECT$'に関するメールを読むことができません。
あしからずご了承ください。
$RECIPIENT$
%SetSubject%=RE: $SUBJECT$
%SetAttachment%=c:\photos\me_on_vaction.jpg
このスクリプトで、自動応答メールの件名の前には"RE: "が追加され、指定のファイルが添付されます。
"%SetSubject%=RE: $SUBJECT$" というマクロは以下のように実行されます。
1.$SUBJECT$部は展開して、最初のメッセージのサブジェクトテキストと取り替えられます。これは次の文字列と同意義になります。
%SetSubject%=RE: Original Subject Text
2.次に、MDaemonが内部バッファにある元の件名を、新しい件名と置き換えます。それ以降、スクリプトの"$SUBJECT$"の使用は、新規の結果を返送します。
新しいマクロを配置する際の注意事項 - 新しいマクロは返信スクリプトの最後に配置して下さい。これは思わぬ悪影響を避けるために必要な処理です。
例えば、%SetSubject%マクロが応答スクリプトの3行目にある$SUBJECT$マクロの前にあると、Subjectテキストは$SUBJECT$マクロが展開される前に変更されることになります。つまり、$SUBJECT$はオリジナルメッセージの"Subject:"ヘッダではなく、%SetSubject%で設定した値に置き換わってしまいます。
参照: