此範例測試到達本機郵件儲存的郵件,並將垃圾郵件歸檔至稱為 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–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:,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。
指定要篩選的郵件。
若要篩選進入本機郵件儲存的所有郵件,請將 destinationspamfilter Xoptin 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 位址時必須變更指令程序檔。