跳过来自某些主机的邮件过滤

跳过来自某些主机的邮件过滤

上下文:

我目前有一个通过直接过滤器运行 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"

相关内容