如何設定 SpamAssassin 去過濾廣告信

1. 首先, 我們要下載一些必要檔案.

 

2. 安裝 ActivePerl 到 C:\perl 目錄. 因為 Perl 安裝後會更新系統路徑加入 Perl 的目錄, 在此強烈建議在安裝完 ActivePerl 後要將雷電MAILD重新啟動來套用到最新的系統環境設定值.

3. 將 SpamAssassin 的 ZIP 壓縮檔解到 C:\Mail-SpamAssassin-3.1.0

4. 將 NMAKE 執行自解出兩個檔案 NMAKE.exe 和 NMAKE.err, 並拷到 C:\perl\bin 目錄下.

5. 到左下方的 [開始] -> [執行..] -> 輸入 cmd 打開一個 dos prompt 視窗, 請輸入 echo %PATH% 來確認系統路徑有 C:\perl\site\bin. 若沒有的話, 請到 [控制台] -> [系統] -> [進階] -> [環境變數] -> [系統變數] -> 找到 Path 欄位並加上 C:\perl\bin 後, 再重新開出一個 dos prompt 視窗並再次啟動雷電MAILD 套用環境變數.

6. 將 dos prompt 視窗路徑進到 C:\Mail-SpamAssassin-3.1.0 目錄裡.

7. 輸入指令 perl makefile.pl , 它會問你

Build spamc.exe (environment must be set up for C compiler)? (y/n) [y] n

請回答 n , 接著它會問你

What email address or URL should be used in the suspected-spam report
text for users who want more information on your filter installation?
(In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system]

請輸入一個負責的 email address 專門收 spamassassin 的報告. 接著出現一串訊息, 等待它跑完就好了, 其中出現 module missing 的訊息不用理會.

 

8. 輸入指令 nmake , 它會開始進行編譯.

9. 輸入指令 nmake install , 然後會開始將 spamassassin 安裝到 perl 目錄裡.

10. 將 c:\perl\site\share\spamassassin 這目錄下的檔案拷到 c:\usr\share\spamassassin 目錄下 ( 此 c:\usr\share\spamassassin 目錄要自行建立)

11. 將 c:\perl\site\etc\mail\spamassassin 這目錄下的檔案拷到 c:\etc\mail\spamassassin 目錄下 (此 c:\etc\mail\spamassassin 目錄要自行建立)

12. 找到 C:\perl\site\bin\spamassassin.bat 這個檔, 將它的唯讀屬性取消, 打開檔案, 找到位於第二行的 @echo off , 在之後第三行插入以下兩行設定值後存檔. NAME Server 就是 DNS Server, 此文件是以 168.95.1.1 為 DNS Server.

SET RES_NAMESERVERS=168.95.1.1
SET LANG=en_US

 

13. 接著我們要進行測試了. 在 dos prompt 視窗, 進到 C:\Mail-SpamAssassin-3.1.0 目錄, 輸入

spamassassin -D -t < sample-spam.txt > spam.txt

建議用 UltraEdit 打開 sample-spam.txt 和 spam.txt (用 notepad 打開這 unix 格式文字檔, 會有換行的問題), 假如你有在 spam.txt 裡面有看到

X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on arnor-ex
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=1000.0 required=5.0 tests=GTUBE,NO_RECEIVED,
NO_RELAYS autolearn=no version=3.1.0

那表示你的 spamassassin 模組已經可以運作了.

倘若你要測試非廣告信, 則是輸入

spamassassin -D -t < sample-nonspam.txt > nospam.txt

 

14. 到 C:\Perl\site\etc\mail\spamassassin 的目錄下, 打開 local.cf 檔, 修改以下:

a) 把 rewrite_header Subject *****SPAM***** 的前頭 # 號拿掉
b) 把 report_safe 的前頭 # 號拿掉 , 並改成 report_safe=0

15. 並請下載國外使用者 Jeroen 的個人創作 SpamAssassin VBScript 程式, 將 ZIP 中的 SpamAssassinVBS.vbs 解到 c:\mail 目錄(自行建立此目錄), 並再建立 c:\mail\spam\BusyCheck\c:\mail\spam\BusySpam\ 兩個目錄.

16. 再打開 SpamAssassinVBS.vbs , 按照您環境的不同, 可能要修改檔案中的一些路徑設定, 要注意的有:

  • Const strBusyCheck = "c:\mail\spam\BusyCheck\"

這個 c:\mail\spam\BudyCheck\ 是那些被 spamassassin 檢查中的檔案的暫存目錄.

  • Const strBusySpam = "c:\mail\spam\BusySpam\"

這個 c:\mail\spam\BusySpam\ 是那些被 spamassassin 檢查出廣告信時的暫存目錄.

  • Const strLogPath = "c:\mail\SpamAssassin.log"

設定 spamassassin 的 log 路徑

  • Const strNoSpamFile = "nospam.txt"

倘若使用者只想讓信被 spamassassin 檢查並記錄 spam result 在信的檔頭, 並不想讓信被移到 \-unsolicited- 目錄存放的話, 就要建立個 nospam.txt 放在使用者的信箱裡, 用來表示不移動信, 將由使用者自己的客戶端郵件軟體來自行判斷信檔頭的 SpamAssassin 資訊.

  • Const strClamWinExePath = "d:\clamwin\bin\clamscan.exe"

ClamWin 的 clamscan.exe 路徑, 當然也可以利用這批次檔來執行查毒. 預設則是停用.

  • Const strClamWinTempDir = "d:\clamwin\temp"

ClamWin 查毒時的暫存目錄.

  • Const strSpamAssassinBatPath = "c:\perl\site\bin\spamassassin.bat"

spamassassin 的執行批次檔路徑

  • Const strGlobalWhiteList = "c:\mail\whitelist.txt"

共用的白名單路徑

 

17. 打開雷電MAILD 的事件處理器,

[啟用事件處理器] -- 打勾

[全部收到的信件] -- 打勾

在執行外部程式欄位輸入

C:\mail\spamassassinVBS.vbs

在參數欄位輸入

//b file=%F from=%S

(//b 表示不跳出除錯訊息視窗) 然後按新增, 給個名稱為 spamassassin 並在列表中打勾表示要啟用它.

 

18. 接下來, 您可以寄封信到自己的信箱做測試. 若無誤的話, 您應該會看到類似如下的記錄.

[2006/6/8 下午 10:19:18] [4024] SMTP 服務接受從 192.168.0.2 來的連線
[2006/6/8 下午 10:19:18] [4024] 192.168.0.2 要求 SMTP 服務 - 寄信人是 arnor@raidenmaild.com
[2006/6/8 下午 10:19:18] [4024] 192.168.0.2 - 郵件內容已收到 (To:arnor1@raidenmaild.com) 13050 bytes ( 52.2 KB/s)
[2006/6/8 下午 10:19:18] [4024] SMTP 服務中斷從 192.168.0.2 來的連線
[2006/6/8 下午 10:19:18] 儲存郵件到 <arnor1> 的信箱, 檔名為 _20060608221918-557005657-4024.eml 13164bytes
[2006/6/8 下午 10:19:18] 找到符合事件(spamassassin), 且執行事件程序成功(C:\mail\spamassassinVBS.vbs //b file="H:\WORK\test event\Inboxes\arnor1\_20060608221918-557005657-4024.eml" from=arnor@raidenmaild.com)

註: 當您系統執行 vbscript 時, 可能防毒軟體會偵測到並詢問您要不要讓它執行, 請把它設定允許執行.
每當你修改一次 SpamAssassinVBS.vbs, 都會被要求重新授權一次. 如以下圖示:

 

19. 接著我們登入 Webmail 去看這封信的處理結果, 看看信的標題有無被加上 *******SPAM****** 字樣(您也可以修改spamassassin.VBS 來讓廣告信被移到使用者的未經驗證目錄). 並且您可以點 [檔頭] 來觀看該信的檔頭資訊. 應該會看到類似如下的內容.

X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on arnor-ex
X-Spam-Level:
X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED,AWL,HTML_MESSAGE autolearn=unavailable version=3.1.0

X-Spam-Status: No 就可以看出這封信不被認為是廣告信.

 

20. 做到這邊您已完成基本的 SpamAssassin 的架設並應用在雷電MAILD上了. 恭喜. ^^

 

感謝您看完此篇文章

回知識庫首頁

最近更新日期: 2011/12/08

Copyright ©2000-2011s RaidenMAILD TEAM

Copyright (C) http://www.raidenmaild.com/ . , 2000-2008 all rights reserved. The copyrighted works contained in this information service shall not be copied, reproduced, varied, altered, modified, adapted, distributed, performed and displayed in any form without the written permission of the copyright owner. All trademarks belong to their respective owners .