Spamassassin是一个强大的基于内容过滤的垃圾邮件过滤工具.把Spamassassin和邮件传输代理(MDA)Procmail联合起来对接收的邮件进行过滤.对发现的垃圾邮件,可以有多种处理方式.
例如,如果发现邮件是垃圾邮件,可以选择删除邮件,或者存放在指定的目录,或者改变邮件的标题.把Procmail和Spamassassin联合联合起来对邮件进行处理是一种比较直接的方式. 本文中,假设您的系统上的MTA已经配置好,正常运行.已经安装了procmail和spamassassin软件包.
第一步,配置MTA(邮件传输代理)把接收到的所有邮件转发到procmail去进一步处理.Procmail会把每封邮件交给Spamassassin去扫描.如果系统默认的MTA是sendmail,则Procmail已经配置好.如果系统MTA默认是Postfix,您需要执行下面的命令:
postconf -e "mailbox_command" = "/usr/bin/procmail" service postfix reload
下一步,编辑/etc/procmail文件,这个文件应该包含以下内容:
# /etc/procmailrc # Send all mail through Spamassassin :0 fw * < 256000 | /usr/bin/spamc -f -u mail
编辑Spamassassin的默认配置文件,/etc/sysconfig/spamassassin:
# /etc/sysconfig/spamassassin # Options for spamd SPAMDOPTIONS="-d -c -u mail"
启动Spamassassin服务:
service spamassassin start; chkconfig spamassassin on
执行下面的命令测试:
tail -f /var/log/maillog
在其他的终端窗口发送一封测试邮件到本地用户.所有进来的邮件应该都会发送到Spamassassin去处理:
Nov 5 08:31:52 giles sendmail[20943]: jA5DVqvN020943: to=root, ctladdr=user (10083/10083), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30049, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (jA5DVqJL020944 Message accepted for delivery) Nov 5 08:31:52 giles spamd[20935]: connection from localhost.localdomain [127.0.0.1] at port 35214 Nov 5 08:31:52 giles spamd[20935]: processing message <[email protected]> for mail:8. Nov 5 08:31:53 giles spamd[20935]: clean message (-2.8/5.0) for mail:8 in 1.2 seconds, 687 bytes. Nov 5 08:31:53 giles spamd[20935]: result: . -2 - ALL_TRUSTED scantime=1.2,size=687,mid=<[email protected]>,autolearn=ham Nov 5 08:31:53 giles sendmail[20945]: jA5DVqJL020944: to=, ctladdr= (10083/10083), delay=00:00:01, xdelay=00:00:01, mailer=local, pri=30622, dsn=2.0.0, stat=Sent