我们使用 Postfix 和 Dovecot,并通过 Dovecot 进行 SASL Auth(基于这教程)。一切按预期运行。但是当 Dovecot 停机(例如由于维护或其他原因)时,客户端无法在 Postfix 上进行身份验证,并且 Postfix 会因为smtpd_recipient_restrictions
以下原因拒绝客户端请求permit_sasl_authenticated
。
当 Dovecot 身份验证关闭时,是否有办法暂时拒绝到达 Postfix 的邮件?我们的 postfix 配置是:
smtpd_restriction_classes = check_sender_auth
check_sender_auth =
reject_authenticated_sender_login_mismatch,
permit_sasl_authenticated,
reject
smtpd_recipient_restrictions =
reject_invalid_helo_hostname,
reject_non_fqdn_recipient,
check_sender_access mysql:/etc/postfix/check_sender_domains,
reject_non_fqdn_helo_hostname,
[...]
check_sender_domains
是一个查找表,返回check_sender_auth
声称来自我们的发件人地址。
答案1
您可以将提交监听器的reject_code更改为450,这样就不是永久拒绝而是延迟。
check_sender_auth =
defer_if_reject
reject_authenticated_sender_login_mismatch,
permit_sasl_authenticated,
reject
看http://www.postfix.org/postconf.5.html#defer_if_reject了解详情。
不幸的是,当“dovecot 倒塌”时,更新起来并不简单,我承认这让我很困惑;为什么鸽舍 倒塌 了 吗 ?
如果由于鸽舍维护而遇到停机,您应该投入精力以避免鸽舍出现维护停机。
Dovecot 可以很好地运行 HA;您可以轻松地在另一台机器上仅为 SASL(无 IMAP 服务)运行辅助实例。