我的外部 SMTP 阻止了一些带有错误的电子邮件450 4.7.1 Client host rejected: cannot find your hostname
,我们将其追溯到reject_unknown_client_hostname
。实际上,反向地址解析到的主机名本身没有 DNS 记录。修复此问题的可能性很小,但我们确实需要获取他们的电子邮件。
那么,我们可以配置某种例外来绕过这个规则吗?只是对他们来说?
答案1
您可以允许特定客户端绕过smtpd_client_restrictions
:
smtpd_client_restrictions =
check_client_access hash:/etc/postfix/client_access,
reject_invalid_hostname
这将首先采取中指定的操作client_access
,如果它与那里列出的任何规则不匹配,则拒绝没有有效域的发件人。
client_access 中的语法是:
1.2.3.4 OK
bad.domain REJECT
一旦设置了此文件,执行以下命令来生成此文件的索引版本(db):
postmap /etc/postifx/client_access
重新加载 postfix 就没问题了。
更多文档访问表
更多关于smtpd_客户端限制
编辑:如果出于某种原因您需要调试此操作,您可以尝试根据连接到您服务的用户在 smtpd 中启用调试。编辑/etc/postfix/master.cf
,找到 smtpd 服务并添加如下一行:
smtp inet n - - - - smtpd
-o debug_peer_level=10 -o debug_peer_list=1.2.3.4
它将启用调试仅适用于 1.2.3.4 版本通过查看您的邮件日志,您应该可以了解当客户端 1.2.3.4 连接到 smtp 服务向您发送电子邮件时发生的情况。