- 论坛徽章:
- 0
|
前段时间,帮一个朋友利用业务时间搭建了一个基于Qmail的SpamAssassin(简称SA)的垃圾邮件过滤系统;SA的功能只是根据一定的规则对邮件进行打分,并在邮件头中插入一些标记,用以标示是否是垃圾邮件;但是,SA不会针对垃圾邮件进行任何后续处理,这个一定要记清楚。
针对SA处理后的垃圾邮件或非垃圾邮件,需要依靠MDA(Mail Delivery Agent)来处理。所以,网上经常有朋友问这类问题,不过一般推荐使用MailScanner或Amavisd。
如果对MDA(maildrop或procmail)比较熟悉,完全可以自己写过滤规则,而不用使用MailScanner或Amavisd。
下面是自己经过多次调试后使用的过滤规则,在此与大家共享;SA的具体安装步骤可以参考官方网站或SA自带的Readme,里面会有详细的安装说明。
################################################################################
VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
VHOME=`/home/vpopmail/bin/vuserinfo -d
[email=$EXT@$HOST]$EXT@$HOST[/email]
`
`test -d $VHOME/Maildir/`
if ( $RETURNCODE != 0 )
{
to /dev/null
#to "/home/vpopmail/domains/xxx.sh.cn/postmaster/Maildir/.Spam/"
exit
}
if (/^From:.*\@xxx\.sh\.cn/)
{
to "$VPOP"
exit
}
`[ -d $VHOME/Maildir/.Spam ] || /var/qmail/bin/maildirmake $VHOME/Maildir/.Spam`
`test -f .black_list`
if ( $RETURNCODE == 0 )
{
if ( $SENDER ne '' && lookup($SENDER,'.black_list') )
{
to "$VHOME/Maildir/.Spam/"
exit
}
}
`test -f .white_list`
if ( $RETURNCODE == 0 )
{
if ( $SENDER ne '' && lookup($SENDER,'.white_list') )
{
to "$VPOP"
exit
}
}
if ( $SIZE
if (/^X-Spam-Flag: YES/)
{
exception {
to "$VHOME/Maildir/.Spam/"
}
}
else
{
exception {
to "$VPOP"
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3959/showart_288340.html |
|