Sun Java System Messaging Server 6.3 管理ガイド

13.5.4 変換チャネル出力を使ってメッセージのバウンス、削除、保留、再試行を行う

この節では、変換チャネルのオプションを使ってメッセージのバウンス、削除、保留を行う方法を説明します。基本手順は次のとおりです。

  1. 該当する変換ファイルエントリに OVERRIDE-OPTION-FILE=1 を設定します。変換チャネルで OUTPUT_OPTIONS ファイルの出力オプションを読み取ります。

  2. 変換スクリプトを使い、特定のメッセージ本文部分に必要なアクションを決定します。

  3. スクリプトで、OUTPUT_OPTIONS ファイルに STATUS=directive_code オプションを記述しアクションに対する指示を指定します。

すべての指示のリストは msg-svr-base/include/deprecated/pmdf_err.h を参照してください。次に、変換チャネルでよく使用される指示を示します。

表 13–5 変換チャネルで一般的に使用される特別な指示

名前 

16 進数値 

10 進数値 

PMDF__FORCEHOLD

0x0A9C86AA

178030250

PMDF__FORCERETURN

0x0A9C857A

178029946

PMDF__FORCEDELETE

0x0A9C8662

178030178

PMDF__FORCEDISCARD

0x0A9C86B3

178030259

PMDF__AGN

0x0A9C809A

178028698

これらの指示の機能について、例を用いて説明します。

13.5.4.1 メッセージをバウンスさせる

変換チャネルを使ってメッセージをバウンスさせるには、該当する conversions ファイルエントリに OVERRIDE-OPTION-FILE=1 を設定し、変換スクリプトに次の行を追加します。

echo "STATUS=178029946" >> $OUTPUT_OPTIONS

バウンスさせるメッセージに短いテキスト文字列を追加する場合は、変換スクリプトに次の行を追加します。

echo OUTPUT_DIAGNOSTIC=text-string >> $OUTPUT_OPTIONS

次にテキスト文字列の例を示します。「お使いのマシンから送信されたメッセージにはウイルスが含まれていましたが、削除されました。電子メールの添付ファイルを実行する場合は注意してください。

13.5.4.2 メッセージまたはその一部を条件付きで削除する

メッセージ部分は、含まれている内容によって条件付きで削除すると便利な場合があります。これは出力オプションで実行できます。逆に、DELETE=1 変換パラメータ句を使うとメッセージ部分が無条件に削除されます。

出力オプションを使ってメッセージ部分を削除するには、該当する変換ファイルエントリに OVERRIDE-OPTION-FILE=1 を設定し、変換スクリプトに次の行を追加します。

echo "STATUS=178030178" >> $OUTPUT_OPTIONS

同様に、メッセージ全体を削除するには、次の行を使用します。

echo "STATUS=178030259" >> $OUTPUT_OPTIONS

13.5.4.3 メッセージを保留にする

メッセージは、含まれている内容によって条件付きで保留にすると便利な場合があります。出力オプションを使ってメッセージ部分を削除するには、該当する変換ファイルエントリに OVERRIDE-OPTION-FILE=1 を設定し、変換スクリプトに次の行を追加します。

echo "STATUS=178030250" >> $OUTPUT_OPTIONS

これにより、変換チャネルキューに .HELD ファイルとしてメッセージを保留にするように、変換チャネルに指定します。

13.5.4.4 メッセージを再処理する

変換スクリプトで一時的なリソースの問題が発生した場合は (たとえば、システムが外部サーバーに接続できない、必要なファイルがロックされているなど)、PMDF_AGN を使用して、一時エラーの発生したメッセージの処理を試みるように変換チャネルに通知することができます。MTA は、「Q」ステータスメッセージを mail.log_current に記録し、メッセージを変換チャネルに保持し、あとで処理を再試行します。

次の行を変換スクリプトに追加します。

echo "STATUS=178028698" >> $OUTPUT_OPTIONS