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

SpamAssassin 配置範例

本小節說明了一些常用 SpamAssassin 配置範例:


備註 –

這些範例使用了一些選項和關鍵字。請參閱表 14–1表 14–2


Procedure將垃圾郵件歸檔至單獨的資料夾

此範例測試到達本機郵件儲存的郵件,並將垃圾郵件歸檔至稱為 spam 的資料夾。前三個步驟可以任何次序執行。

步驟
  1. 建立 SpamAssassin 配置檔案。

    步驟 2 中指定了此檔案的名稱和位置。spamassassin.opt 是個很好的名稱。此檔案包含以下行:


    host=127.0.0.1
    port=2000
    mode=0
    verdict=spam
    debug=1
                      

    hostport 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=0 指定如果某郵件被偵測為垃圾郵件,則傳回由 verdict 指定的字串。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。請參閱表 14–4

  2. 將以下行增加至 option.dat 檔案:


    ! for Spamassassin
    spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,require "fileinto"; fileinto "$U";
                      

    spamfilter1_config_file 指定 SpamAssassin 配置檔案。

    spamfilter1_library 指定 SpamAssassin 共用程式庫。

    spamfilter1_optional=1 指定即使因 spamd 而發生故障,MTA 仍繼續作業。

    spamfilter1_string_action 指定對垃圾郵件執行的篩選動作。

    spamfilter1_string_action 在此範例中不是必需的,因為預設值已經是 data:,require "fileinto"; fileinto "$U";。此行指定將垃圾郵件傳送至資料夾。資料夾的名稱是由 SpamAssassin 傳回的垃圾郵件判定結果值。SpamAssassin 傳回的值由 spamassassin.opt 中的 verdict 選項指定。(請參閱步驟 1。)在此情況下,資料夾名稱為 spam

  3. 指定要篩選的郵件。

    1若要篩選進入本機郵件儲存的所有郵件,請將 destinationspamfilterXoptin spam 關鍵字增加至 ims-ms 通道,以變更 imta.cnf 檔案:


    !
    ! ims-ms
    ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m" 
    "pt30m" "pt1h"  "pt2h" "pt4h" maxjobs 4 pool IMS_POOL fileinto
    $U+$S@$D destinationspamfilter1optin spam
    ims-ms-daemon
  4. 重新編譯配置並重新啟動伺服器。僅 MTA 需要重新啟動。無需執行 stop-msg


    # imsimta cnbuild
    # imsimta restart
    
  5. 啟動 spamd 常用程式。通常以指令啟動,指令的形式為:

    spamd -d

    spamd 預設為僅接受來自本機系統的連線。如果 SpamAssassin 和 Messaging Server 在不同系統上執行,則需要以下語法:

    spamd -d -i listen_ip_address -A allowed_hosts

    其中,listen_ip_address 表示偵聽時所在的位址,而 allowed_hosts 表示可以連線此 spamd 實例的授權主機或網路 (使用 IP 位址) 清單。


    備註 –

    0.0.0.0 可與 -i listen_ip_address 配合使用,以使 spamd 偵聽所有位址。最好偵聽所有位址,因為 spamfilterX_verdict_n 可避免在變更系統 IP 位址時必須變更指令程序檔。


Procedure將包含 SpamAssassin 分值的標頭增加至垃圾郵件

此範例將標頭 Spam-test: result string 增加至被 SpamAssassin 確定為垃圾郵件的郵件。標頭範例可能是:

Spam-test: True ; 7.3 / 5.0

其中,Spam-test: 為文字列,其後的所有內容為結果字串。True 表示它是垃圾郵件 (false 表示不是垃圾郵件)。7.3 為 SpamAssassin 分值。5.0 為臨界值。此結果有助於設定篩選器,它可以歸檔或捨棄超過某個分值或介於分值之間的郵件。

此外,將 USE_CHECK 設定為 0 可傳回與判定結果字串匹配的 SpamAssassin 測試清單。請參閱表 14–4 中的 USE_CHECK。

步驟
  1. 指定要篩選的郵件。這在將垃圾郵件歸檔至單獨的資料夾步驟 3 中有說明。

  2. 建立 SpamAssassin 配置檔案。

    此檔案的名稱與位置可使用 spamfilter_configX_file 指定 (請參閱下一個步驟)。包含以下各行:


    host=127.0.0.1
    port=2000
    mode=1
    field=
    debug=1
                      

    hostport 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=1 指定如果郵件被確定為垃圾郵件,則傳回 SpamAssassin 結果字串。field= 指定 SpamAssassin 結果字串的字串前綴。在此範例中,前綴並不是必需的,因為我們會在篩選程序檔中指定它。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。

  3. 將以下行增加至 option.dat 檔案:


    !for Spamassassin
    spamfilte1r_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,require 
    ["addheader"];addheader "Spam-test: $U";
                      
    

    與前面的範例相同,前三個選項指定 SpamAssassin 配置檔案、共用程式庫以及因共用程式庫發生故障時繼續 MTA 作業。以下一行:

    spamfilter1_string_action=data:,require ["addheader"];addheader "Spam-test: $U";

    指定將標頭增加至垃圾郵件。標頭將具有文字列前綴 Spam-text: 其後是傳回的字串。因為在上一步中指定了 mode=1,所以傳回 SpamAssassin 結果字串。例如:True; 7.3/5.0

  4. 重新編譯配置,重新啟動伺服器,並啟動 spamd 常駐程式。

    請參閱SpamAssassin 配置範例

Procedure將 SpamAssassin 結果字串增加至主旨行

透過將 SpamAssassin 結果字串增加至主旨行,使用者可以確定是否閱讀帶有 SpamAssassin 分值的郵件。例如:

Subject: [SPAM True ; 99.3 / 5.0] Free Money At Home with Prescription Xanirex!

請注意,將 USE_CHECK 設定為 0 可傳回與判定結果字串 (請參閱SpamAssassin 選項中的SpamAssassin 選項) 匹配的 SpamAssassin 測試清單。此清單可能會很長,因此最好將 USE_CHECK 設定為 1

步驟
  1. 指定要篩選的郵件。

    請參閱將垃圾郵件歸檔至單獨的資料夾中的步驟 3

  2. 建立 SpamAssassin 配置檔案。

    此步驟在將垃圾郵件歸檔至單獨的資料夾中有說明。mode=1 指定如果郵件被確定為垃圾郵件,則傳回 SpamAssassin 結果字串。


    host=127.0.0.1
    port=2000
    mode=1
    debug=1
                      

    hostport 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=1 指定如果郵件為垃圾郵件,則傳回 SpamAssassin 結果字串。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。

  3. 將以下行增加至 option.dat 檔案:


    !for Spamassassin
    spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,addtag “[SPAM detected: $U]”;
                      
    

    與前面的範例相同,前三個選項指定 SpamAssassin 配置檔案、共用程式庫以及因共用程式庫發生故障時繼續 MTA 作業。以下一行

    spamfilter1_string_action=data:,addtag “[SPAM detected $U]”;

    指定將標記增加至 Subject: 行。它具有文字列前綴 SPAM detected,其後是欄位字串 (預設:Spam-Test),其後是 SpamAssassin 傳回的「[result string]」。因為在SpamAssassin 配置範例中指定了 mode=1,所以傳回 SpamAssassin 結果字串。因此,主旨行如下所示:

    Subject: [SPAM detected Spam-Test: True ; 11.3 / 5.0] Make Money!

    您還可以將 addheaderaddtag 一同使用:

    spamfilter1_string_action=data:,require ["addheader"];addtag "[SPAM detected $U]";addheader "Spamscore: $U";

    以收到如下郵件:

    Subject: [SPAM detected Spam-Test: True ; 12.3 / 5.0] Vigaro Now!Spamscore: Spam-Test: True ; 12.3 / 5.0

    設定 spamassassin.opt 中的 field=,以移除 Spam-Test 預設值。傳回一個清除較明確的郵件:

    Subject: [SPAM True ; 91.3 / 5.0] Vigaro Now!Spamscore: True ; 91.3 / 5.0

  4. 重新編譯配置,重新啟動伺服器,並啟動 spamd 常駐程式。

    請參閱將垃圾郵件歸檔至單獨的資料夾