ポリシースクリプト 6:「Calculate Spam Probability, Modify and Deliver」」(スパムスコアを計算し、変更して配信)

メッセージの変更

# import levels here
# attr NAME=Copy to quarantine and deliver if spam probability is 50%
# or more.
if not pmx_spam_prob :under 50 {
     pmx_replace_header "X-PerlMx-Spam" "Gauge=%%XGAUGE%%%%IGAUGE%%,
       Probability=%%PROB%%, Report='%%HITS%%'";
     pmx_file "Spam";
     pmx_replace_header "Subject" "[PMX:%%GAUGE%%] %%SUBJECT%%";
     stop;
}

説明:

  • pmx_spam_prob テストで、メッセージのスパムスコアが 50% 以上であることが判明した場合
    • pmx_replace_header によって、「X-PerlMx-Spam」ヘッダが追加、または変更されます。%%XGAUGE%%%%IGAUGE%% 変数は、%%PROB%% 変数によって確認されたスパムスコアが 10% 増えるごとに「X」の記号をヘッダに追加します。続いて、%%HITS%% 変数によってエンジンによって検出されたスパムの特徴のリストが追加されます。
    • pmx_file コマンドは、「Spam」(スパム) という理由で隔離ディレクトリにメッセージをコピーします。
    • pmx_replace_header コマンドによってメッセージの「Subject」ヘッダに「PMX: 」の接頭辞付けられ、メッセージのスパムスコアが 50% を超えた場合は 10% ごとに # という記号が 1つずつ追加されます。少なくとも 1つの「#」が各メッセージに対して常に追加され、メッセージに 0~50% の確率でスパムが含まれていることを示します。元のメッセージの件名は、ヘッダの最後に %%SUBJECT%% テンプレート変数と共に追加されます。
    • stop コマンドによってメッセージの処理が終了します。

メッセージの配信

# attr NAME=Add X-Header and deliver messages
else {
     pmx_replace_header "X-PerlMx-Spam" "Gauge=%%XGAUGE%%%%IGAUGE%%,
       Probability=%%PROB%%, Report='%%HITS%%'";
     stop;
}

説明:

  • pmx_spam_prob テストで、メッセージのスパムスコアが 50% 未満であることが判明した場合
    • pmx_replace_header によって、「X-PerlMx-Spam」ヘッダが追加、または変更されます。%%XGAUGE%%%%IGAUGE%% 変数は、%%PROB%% 変数によって確認されたスパムスコアが 10% 増えるごとに「X」の記号をヘッダに追加します。続いて、%%HITS%% 変数によってエンジンによって検出されたスパムの特徴のリストが追加されます。
    • stop コマンドによってメッセージの処理が終了します。