上下文:
我目前有一个通过直接过滤器运行 spamassassin 的主 MX:
smtp inet n - n - - smtpd -o content_filter=filter
filter unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
我还有一个备份 MX,用于运行他的垃圾邮件检查并转发到我的主要邮件服务器。
问题:
当转发的邮件到达主 MX 时,将再次进行垃圾邮件检查并X-Spam-Flag:
覆盖之前的邮件(预期为 asd)。
但是,在主 MX 上,Received:
标题指向备份 MX,这导致 RBL 检查在错误的 IP 上完成,并且总是成功,并且垃圾邮件(由备份 MX 正确检测到)再次被标记为“非垃圾邮件”(这很糟糕)。
问题:
有没有办法跳过content_filter
并保留X-Spam-Flag:
来自特定主机(备份 MX)的邮件原始内容?
答案1
找到了一个非常简单的解决方案:在另一个没有内容的端口上运行另一个 SMTP 实例并配置备份 MX 以转发给它。
在主 MX master.cf 上添加:
26 inet n - n - - smtpd
并在主 MX 防火墙上打开端口 26:
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="<BACKUP_MX_IP>" port protocol="tcp" port="26" accept"