由于某种原因 postfix 拒绝发送邮件,我不明白为什么。以下是我一开始使用的相关行:
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:10031,
check_client_access hash:/etc/postfix/access_ips,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
其中 mynetworks = 127.0.0.0/8。现在,我刚刚将 postfix 从 2.3.3 升级到 2.11.3 以及操作系统,结果发现它拒绝所有内容,即使配置文件根本没有改变。我已经将配置更改为:
smtpd_recipient_restrictions =
# check_policy_service inet:127.0.0.1:10031,
# check_client_access hash:/etc/postfix/access_ips,
# permit_mynetworks,
# permit_sasl_authenticated,
# reject_unauth_destination
permit
但 Postfix 仍然拒绝中继访问。为什么?毕竟我最后已经获得了许可,对吧?我只想说 smtpd_client_restrictions 是相同的 = 许可。
答案1
于是我找到了答案;
我完成更新后发现,而不是
smtpd_收件人限制
我应该使用:
smtpd_relay_restrictions
这已发布在这里:http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
有趣的是,文档说
# With Postfix 2.10 and later, the mail relay policy is
# preferably specified under smtpd_relay_restrictions.
smtpd_relay_restrictions =
permit_mynetworks, permit_sasl_authenticated, ...
# With Postfix before 2.10, the relay policy can be
# specified only under smtpd_recipient_restrictions.
smtpd_recipient_restrictions =
permit_mynetworks, permit_sasl_authenticated, ...
因此,这意味着旧命令应该仍然有效,但它不起作用,或者也许我不完全理解它。