如何设定 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 .