Postfix/smtpd:客户端主机被拒绝:找不到您的主机名

Postfix/smtpd:客户端主机被拒绝:找不到您的主机名

我正在尝试使用 postfix 和 dovecot 设置邮件服务器。一切正常,我可以使用 Mozilla Thunderbird 在 IMAP 中连接。但是当我尝试使用 smtp 服务器发送电子邮件时,我遇到了以下问题找不到您的主机名日志中出现错误,并且发送邮件失败:

mail postfix/smtpd[15822]: NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx.xxx]: 550 5.7.1 Client host rejected: cannot find your hostname, [xxx.xxx.xxx.xxx]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.10.47]>

xxx.xxx.xxx.xxx是客户端(而非服务器)的 IP 地址。我在 Google 上搜索了一下找不到您的主机名错误,这似乎与 PTR DNS 记录有关。但我的服务器的 PTR DNS 记录似乎配置正确:

这是的结果dig -x yyy.yyy.yyy.yyy,其中yyy.yyy.yyy.yyy是我的服务器的 IP 地址:

;; QUESTION SECTION:
;yyy.yyy.yyy.yyy.in-addr.arpa.       IN      PTR

;; ANSWER SECTION:
yyy.yyy.yyy.yyy.in-addr.arpa. 86400  IN      PTR     mail.domain.com.

在我的 中/etc/postfix/main.cf,我有以下关于 smtp 限制的内容:

## Customized smtpd paramters
smtpd_banner = $myhostname ESMTP
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
    reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname,
    reject_unknown_helo_hostname, permit
smtpd_recipient_restrictions = reject_unknown_client_hostname,
    reject_unknown_sender_domain, reject_unknown_recipient_domain,
    reject_unauth_pipelining, permit_mynetworks,
    permit_sasl_authenticated, reject_unauth_destination,
    reject_invalid_hostname, reject_non_fqdn_sender
smtpd_sender_restrictions = reject_unknown_sender_domain,
    reject_sender_login_mismatch
smtpd_sender_login_maps = $virtual_mailbox_maps

在我的中/etc/postfix/master.cf,只有默认值,没有任何限制:

smtp      inet  n       -       -       -       -       smtpd

我还可以补充一点,我正在使用非自签名证书的 sasl 身份验证,并且我的服务器是 Debian Wheezy,但我认为这与我的问题无关。

关于如何解决我的问题或在哪里查找有什么线索吗?

答案1

您已将服务器设置为拒绝 HELO 中使用的无效和未知的主机名。

smtpd_helo_restrictions = permit_mynetworks,
    reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname,
    reject_unknown_helo_hostname, permit

(另外,那里的那行以 结尾permit;您缺少部分配置。)

如果您希望能够从未发出具有有效主机名的正确 HELO 的客户端发送电子邮件,请删除reject_invalid_helo_hostnamereject_unknown_helo_hostname

相关内容