ポリシースクリプト 2:「Scan External Mail for Viruses」(外部メールに含まれるウイルスを検索)

# attr NAME=Mail from external hosts
else {
    pmx_add_header "X-PMX-Version" "%%PMX_VERSION%%";
    pmx_mark "Size" "%%MESSAGE_SIZE%%";
    # attr NAME=Clean mail containing viruses
    if pmx_virus {
        pmx_file "Virus";
        pmx_virus_clean "cantclean.tmpl";
        pmx_replace_header "Subject" "[PMX:VIRUS] %%SUBJECT%%";
        pmx_replace_header "X-PerlMx-Virus-Detected" "%%VIRUS_IDS%%";
    }

説明:

  • if pmx-relay テスト結果が「false」の場合、else 制御コマンドが実行されます。
    • メールは外部ホストから送信されたものと想定されます。
    • pmx_add_header コマンドによってメッセージにヘッダが追加されます。ヘッダには「X-PMX-Version」の文字列と PureMessage のバージョン情報 (%%PMX_VERSION%% テンプレートの変数を使用して追加) が含まれます。
    • メッセージのサイズがメッセージログに書き込まれます。%%MESSAGE_SIZE%% テンプレートの変数は、バイト単位のメッセージの実際のサイズの値と置き換えされます。
  • pmx_virus コマンドは、メッセージにウイルスが含まれていないかどうかをテストします。テストで「true」が返され、メッセージにウイルスが含まれている場合
    • pmx_file によって、メッセージは「Virus」(ウイルス) であるという理由で隔離ディレクトリにコピーされます。このアクションは、メッセージの配信には影響を与えません。
    • pmx_virus_clean のアクションによって、メッセージからのウイルス除去が実行されます。除去が失敗した場合、メッセージは隔離され、失敗時に関する指定のテンプレートファイルの cantclean.tmpl に基づいたメッセージが受信者に送信されます。
    • pmx_replace_header コマンドによって、「Subject」(件名) ヘッダに [PMX:VIRUS] の接頭辞が追加されます。元の「Subject」(件名) はヘッダの最後に %%SUBJECT%% テンプレート変数と共に追加されます。
    • pmx_replace_header コマンドによって、「X-PerlMx-Virus-Detected」ヘッダが追加または変更されます。%%VIRUS_IDS%% テンプレート変数によって、検出されたウイルス ID をメッセージヘッダに追加します。