postfix + rspamd:postfix 无法解析虚拟别名

postfix + rspamd:postfix 无法解析虚拟别名

我有一个基于 Arch Linux 的 postfix 邮件服务器。

我使用了通常的配置:mysql virtual_*(邮箱、别名、域)和 amavisd 过滤(content_filter = smtp-amavis:[127.0.0.1]:10024)。

我想尝试 rspamd 并且我认为我已经设置好一切了。

我在 Postfix 中使用以下设置:

#MILTER
milter_default_action = accept
milter_protocol = 6

smtpd_milters = inet:127.0.0.1:8891 inet:127.0.0.1:11332
non_smtpd_milters = inet:127.0.0.1:8891
milter_mail_macros =  i {mail_addr} {client_addr} {client_name} {auth_authen}

rspamd local.d/worker-proxy.inc

bind_socket = "127.0.0.1:11332";
milter = yes;
timeout = 120s;
upstream "local" {
    default = yes;
    self_scan = yes;
}

当我关闭 postfix content_filter 选项(没有 amavis 过滤)时,postfix 不会使用虚拟表解析 RCPT TO(别名信封收件人)值,因此重定向不起作用:

如果我发送电子邮件至[电子邮件保护],这是一个虚拟别名,将被重定向到[电子邮件保护],当没有 content_filter 并且 rspamd 基于 smtpd_milters 设置时,不会发生此收件人扩展。

但是,如果我切换回content_filter,那么rspamd和amavis将一起过滤,就没有问题了。

收件人扩展任务理论上是由 postfix 清理进程完成的。

否则 rspamd 可以工作:从命令行、Web 界面和 milter 进行过滤。

我就是不明白。

答案1

我找到了答案:接收覆盖选项该行在内容过滤器之前禁用地址操作。

如果我们使用 content_filter,那么我们必须在 main.cf 中使用 accept_override_options = no_address_mappings。如果没有 content_filter,那么就不应该有 accept_override_options。

相关内容