Postfix - Rspamd + amavis

Postfix - Rspamd + amavis

目前我已经拥有 Postfix、Amavis、Spamassassin、Clamav 以及所有附加功能,并且它们都已启动并运行。

我想将 RSpamd 添加到配置中,我不想替换 Amavis,只是让它们并排运行,在主题中标记垃圾邮件并添加标题以查看哪个在捕获垃圾邮件方面更好。

问题是 Amavis 被添加为带有返回路径的 smtpd_proxy_filter。RSpamd 被添加为 milter。现在单独运行 RSpamd 没问题,但是当我添加 Amavis 时,由于邮件被重定向到代理,所以添加了 Received 标头,因此 RSpamd 认为所有邮件都来自本地主机,跳过一些检查并且不添加标头。

我正在考虑一些解决方案,但不知道是否可以实现以及如何实现它们:

  1. -o smtpd_milters在代理之前运行 milter,将其添加到 master.cf不起作用
  2. 告诉 amavis 不要添加 Received 标头
  3. 告诉 RSpamd 跳过 localhost Received 标头并使用其后的标头

这些能实现吗?

配置文件在这里:

我的master.cf

我的 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_filtersmtpd_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 如何连接和自我介绍。

相关内容