pyzor是一个协作式网络系统,可以使用邮件摘要检测和阻止垃圾邮件,同时它可以做为插件的方式集成到spamassassin来增强SA的反垃圾邮件能力。
在你开始用本文的配置进行尝试的时候务必先按照这篇文章把基础环境搭建好:
> Debian10使用Postfix+Dovecot+RainLoop搭建邮件服务器
这里我选择spamass-milter来和postfix通信,首先安装需要用到的包:
apt -y install spamass-milter pyzor然后配置postfix:
postconf -e "milter_protocol = 6"
postconf -e "milter_default_action = accept"
postconf -e "smtpd_milters = unix:/spamass/spamass.sock"
postconf -e "non_smtpd_milters = unix:/spamass/spamass.sock"接着编辑spamass-milter的配置文件:
nano /etc/default/spamass-milter在OPTIONS后面加上如下配置:
OPTIONS="-u spamass-milter -i 127.0.0.1 -- -s 268435456"注:–是指把参数传递给spamc,-s是指定最大的邮件扫描大小256MB。
编辑spamassassin的配置文件:
nano /etc/default/spamassassin启动规则自动更新:
CRON=1编辑如下配置文件:
nano /etc/spamassassin/local.cf修改安全报告为0,这样我们可以在邮箱内看到spamassassin标记的原始垃圾邮件而不是只能以附件的方式查看:
report_safe 0还是在这个配置文件内加入下面的配置来集成pyzor:
use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_options --homedir /etc/mail/spamassassin接下来我们可以把spamassassin标记的垃圾邮件自动移动到垃圾箱,这里需要用到dovecot的sieve插件。
首先编辑20-lmtp.conf:
nano /etc/dovecot/conf.d/20-lmtp.conflmtp协议启用sieve插件:
protocol lmtp {
mail_plugins = $mail_plugins sieve
}然后编辑90-sieve.conf:
nano /etc/dovecot/conf.d/90-sieve.conf在里面指定一个sieve脚本文件:
sieve_after = /var/lib/dovecot/sieve/spamfilter.sieve新建目录以及新建一个sieve脚本文件:
mkdir -p /var/lib/dovecot/sieve
nano /var/lib/dovecot/sieve/spamfilter.sieve写入如下配置:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}然后再用sievec编译一下,提升一下脚本执行速度:
sievec /var/lib/dovecot/sieve/spamfilter.sieve脚本所在的目录需要更改所有者为vmail:
chown -R vmail:vmail /var/lib/dovecot/sieve最后重启spamass-milter/spamassassin/postfix/dovecot:
systemctl restart spamass-milter spamassassin postfix dovecot现在我们可以测试一下spamassassin和pyzor是否能够正常工作,发一封GTUBE邮件到我们的邮箱内,可以看到直接进了垃圾箱:

然后查看原始内容,可以看到有类似如下图的内容则说明一切正常:

参考文献:
https://wiki.debian.org/DebianSpamAssassin
https://linux.die.net/man/1/spamass-milter