目前我已经拥有 Postfix、Amavis、Spamassassin、Clamav 以及所有附加功能,并且它们都已启动并运行。
我想将 RSpamd 添加到配置中,我不想替换 Amavis,只是让它们并排运行,在主题中标记垃圾邮件并添加标题以查看哪个在捕获垃圾邮件方面更好。
问题是 Amavis 被添加为带有返回路径的 smtpd_proxy_filter。RSpamd 被添加为 milter。现在单独运行 RSpamd 没问题,但是当我添加 Amavis 时,由于邮件被重定向到代理,所以添加了 Received 标头,因此 RSpamd 认为所有邮件都来自本地主机,跳过一些检查并且不添加标头。
我正在考虑一些解决方案,但不知道是否可以实现以及如何实现它们:
-o smtpd_milters
在代理之前运行 milter,将其添加到 master.cf不起作用- 告诉 amavis 不要添加 Received 标头
- 告诉 RSpamd 跳过 localhost Received 标头并使用其后的标头
这些能实现吗?
配置文件在这里:
我的 main.cf 有这些:
smtpd_milters = inet:127.0.0.1:12345
inet:localhost:11332
non_smtpd_milters = inet:127.0.0.1:12345
milter_default_action = accept
milter_content_timeout = 30s
DKIM 端口为 12345,RSpamd 端口为 11332
谢谢
答案1
您不应同时使用smtpd_proxy_filter
和smtpd_milter
。要同时运行 Amavis 和 Rspamd,请考虑将 Amavis 与amavisd-milter.smtpd_milter
可以依次调用不同的 milter。
答案2
几年前也遇到过类似的情况。你实际上可以消除Received:
通过 master.cf 向从 Amavis 接收邮件的 smtpd 添加 不必要的标头-o header_checks=pcre:/etc/postfix/remove_received.pcre
(可能是 127.0.0.1:25 实例,但这取决于 Amavis 将过滤邮件转发到何处)。
PCRE 如下所示remove_received.pcre
:
/^Received: from server.my.domain \(\[127.0.0.1\]\).*/ IGNORE
请注意括号的反斜杠转义,否则将被解释为分组运算符。您可能还需要添加 localhost 作为附加行,具体取决于您的 Amavis 如何连接和自我介绍。