Sun Java System Messaging Server 6 2005Q4 管理指南

支援篩選延伸

除了標準篩選功能外,Messaging Server 還提供對數個篩選功能延伸的支援,這些功能延伸包括 addheaderaddtagspamtestspamadjust。在將包含 SpamAssassin 分值的標頭增加至垃圾郵件將 SpamAssassin 結果字串增加至主旨行中對 addheaderaddtag 進行了說明。

這些延伸可讓管理員設定不同的臨界值以及設定置換 SpamAssassin 判定結果的安全名單。甚至可以將兩者合併,以設定不同的臨界值,具體視特定郵件的傳送者而定。spamadjust 為非標準動作。spamtestftp://ftp.isi.edu/in-notes/rfc3685.txt 中有說明。

spamtest 可用於對 SpamAssassin 分值和特定值進行比較,方法是將篩選 [RELATIONAL] 延伸與 "i;ascii-numeric" 比較器配合使用。SpamAssassin 分值通常為實數,但 spamtest 首先將分值捨入為最接近的整數,從而將分值強制變更為 0 到 10 之間的整數值。小於 0 的數值強制變更為 0,大於 10 的數值強制變更為 10。最終,附加由 Messaging Server 維護的文字字串,以產生 spamtest 測試可查看的測試字串。

spamadjust 用於調整目前的垃圾郵件分值。此動作使用要對其進行實數值掃描的單一字串引數。此值用於調整目前垃圾郵件分值。整個字串也會附加至目前的分值文字字串。在下面顯示的範例中,字串應為「undisclosed recipients」。

允許多個 spamadjust 動作;每個動作均被計入目前分值。此外分值永遠從 0 開始。允許簽署的數字值,才能降低和提高目前分值。沒有針對 spamadjustrequire 陳述式;而應該為列示 spamtest 延伸。

例如,可將 spamadjust 與設定為 2 的 SpamAssassin MODE 配合使用,如下所示:

spamfilterX_string_action=data:,require ["spamtest"];spamadjust "$U";

然後系統級別的篩選器就可以透過檢查特定類型的標頭 (如果找到), 將 SpamAssassin 分值增加 5,修改 SpamAssassin 分值:


spamfilter1_string_action=require "spamtest";  \
if header :contains ["to", "cc", "bcc", "resent-to", "resent-cc", \
   "resent-bcc"]  ["<undisclosed recipients>", "undisclosed.recipients"]  \
{spamadjust "+5 undisclosed recipients";}

最後,使用者級別的篩選程序檔可以測試結果值、捨棄確定為垃圾郵件的郵件、歸檔可能是垃圾郵件的郵件和允許來自本機網域中位址的郵件通過:


spamfilter1_string_action=require ["spamtest", "relational",  \
"comparator-i;ascii-numeric", "fileinto"];                   \
if anyof (address :matches "from" ["*@siroe.com",            \
                                   "*@*.siroe.com"])         \
    {keep;}                                                  \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "8" \
    {discard;}                                               \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" \
    {fileinfo "spam-likely";}                                \
else                                                         \
   {keep;}