我正在尝试设置 postfix 以允许在一组有限的条件下进行中继:
- 目标域是预定义列表之一- 或
- - 客户端成功登录
这是配置的相关位:
smtpd_sasl_auth_enable=yes
relay_domains=example.com
smtpd_recipient_restrictions=permit_auth_destination,reject_unauth_destination
smtpd_client_restrictions=permit_sasl_authenticated,reject
问题是它要求满足两个限制,而不是非此即彼。也就是说,它仅在客户端经过身份验证且收件人域为@example.com 时才允许中继。
相反,如果满足其中一个要求,我需要它允许中继。如果不求助于在具有不同规则的两个独立端口上运行 SMTP,我该如何做到这一点?
注意:
上下文是共享 Web 服务器上的仅出站使用(绑定到 127.0.0.1)MTA,允许所有站点所有者将邮件中继到“拥有的”域之一(虽然不是服务器本地),并且允许一组有限的“受信任”站点所有者不受限制地中继邮件,前提是他们具有有效的 SMTP 登录名。
当然,我在发布问题后 6 分钟就弄明白了。
您可以放入
permit_sasl_authenticated
您的smtpd_recipient_restrictions
设置并完全删除smtpd_client_restrictions
。在http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions中没有记录此选项的事实已证明是这种情况下相当大的挫败感的来源。