這些範例使用了一些選項和關鍵字。請參閱表 14–1 和表 14–2。
此範例測試到達本機郵件儲存的郵件,並將垃圾郵件歸檔至稱為 spam 的資料夾。前三個步驟可以任何次序執行。
建立 SpamAssassin 配置檔案。
步驟 2 中指定了此檔案的名稱和位置。spamassassin.opt 是個很好的名稱。此檔案包含以下行:
host=127.0.0.1 port=2000 mode=0 verdict=spam debug=1 |
host 和 port 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=0 指定如果某郵件被偵測為垃圾郵件,則傳回由 verdict 指定的字串。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。請參閱表 14–4
將以下行增加至 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。
指定要篩選的郵件。
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 |
重新編譯配置並重新啟動伺服器。僅 MTA 需要重新啟動。無需執行 stop-msg。
# imsimta cnbuild # imsimta restart |
啟動 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 位址時必須變更指令程序檔。
此範例將標頭 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。
指定要篩選的郵件。這在將垃圾郵件歸檔至單獨的資料夾步驟 3 中有說明。
建立 SpamAssassin 配置檔案。
此檔案的名稱與位置可使用 spamfilter_configX_file 指定 (請參閱下一個步驟)。包含以下各行:
host=127.0.0.1 port=2000 mode=1 field= debug=1 |
host 和 port 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=1 指定如果郵件被確定為垃圾郵件,則傳回 SpamAssassin 結果字串。field= 指定 SpamAssassin 結果字串的字串前綴。在此範例中,前綴並不是必需的,因為我們會在篩選程序檔中指定它。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。
將以下行增加至 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
重新編譯配置,重新啟動伺服器,並啟動 spamd 常駐程式。
透過將 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。
指定要篩選的郵件。
請參閱將垃圾郵件歸檔至單獨的資料夾中的步驟 3。
建立 SpamAssassin 配置檔案。
此步驟在將垃圾郵件歸檔至單獨的資料夾中有說明。mode=1 指定如果郵件被確定為垃圾郵件,則傳回 SpamAssassin 結果字串。
host=127.0.0.1 port=2000 mode=1 debug=1 |
host 和 port 指定執行 spamd 的系統之名稱和 spamd 偵聽內送請求時所在的連接埠。mode=1 指定如果郵件為垃圾郵件,則傳回 SpamAssassin 結果字串。debug=1 開啟 SpamAssassin 程式庫中的除錯處理。
將以下行增加至 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!
您還可以將 addheader 和 addtag 一同使用:
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
重新編譯配置,重新啟動伺服器,並啟動 spamd 常駐程式。
請參閱將垃圾郵件歸檔至單獨的資料夾。