Postfix 正在拒绝一些传入的电子邮件(“客户端主机被拒绝:找不到您的主机名”)

8 email postfix configuration

我们的 postfix 有时会拒绝电子邮件。我在我们的 postfix 日志 (/var/log/mail.log) 中看到了这个错误:

Feb  9 16:16:33 sd-15xxx postfix/smtpd[1972]: NOQUEUE: reject: RCPT from
    unknown[x.x.x.x]: 450 4.7.1 Client host rejected: cannot find your hostname,
    [x.x.x.x]; from=<someone@sender.com> to=<someone.else@my-domain.com>
    proto=ESMTP helo=<smtp.sender.com>
Run Code Online (Sandbox Code Playgroud)

这是我的 postconf -n :

append_dot_mydomain = yes
biff = no
config_directory = /etc/postfix
disable_vrfy_command = yes
inet_interfaces = all
mydestination = localhost, localhost.localdomain, sd-15xxx.dedibox.fr
mydomain = my-domain.com
myhostname = my-domain.com
mynetworks = 127.0.0.0/8 192.168.0.0/24 y.y.y.y <our server IP address>
relayhost = 
smtpd_banner = $myhostname ESMTP (Debian/GNU)
smtpd_client_restrictions = reject_unknown_client,
    permit_mynetworks
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,
    reject_unauth_destination,
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient
smtpd_sender_restrictions = permit_mynetworks,
    reject_unknown_sender_domain,
    warn_if_reject reject_unverified_sender
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql-virtual_aliases_mailbox.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/spool/vmail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_uid_maps = static:5000
Run Code Online (Sandbox Code Playgroud)

它并不经常发生,但如果我们错过了一封重要的电子邮件,它可能会产生严重的后果。

你知道这个问题是从哪里来的吗?这是配置问题还是反向 DNS 问题(正如我在某处读到的那样)?

这是 nslookup xxxx 的结果:

41.180.106.89.in-addr.arpa  name = Smtp16.sender.com.

Authoritative answers can be found from:
180.106.89.in-addr.arpa nameserver = dns2.iland.com.
180.106.89.in-addr.arpa nameserver = dns3.iland.com.
180.106.89.in-addr.arpa nameserver = dns1.iland.com.
dns1.iland.com  internet address = 65.57.248.5
dns2.iland.com  internet address = 63.211.182.4
dns3.iland.com  internet address = 64.154.20.10
Run Code Online (Sandbox Code Playgroud)

和 dig xxxx 的结果:

; <<>> DiG 9.5.1-P3 <<>> x.x.x.x
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5920
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;x.x.x.x.           IN  A

;; AUTHORITY SECTION:
.           10800   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2010020901 1800 900 604800 86400

;; Query time: 227 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Feb 10 13:45:54 2010
;; MSG SIZE  rcvd: 106
Run Code Online (Sandbox Code Playgroud)

我什至不知道问题是来自我们这边还是来自发送方。

小智 11

这是由 reject_unknown_client 指令引起的(http://www.postfix.org/postconf.5.html#reject_unknown_client_hostname

  • 当反向 DNS 查找清楚地返回正确的响应(即 ANSWER SECTION)时,可能是什么原因? (2认同)

Whe*_*ice 5

那是因为发送电子邮件的 IP 地址(在您的情况下为 xxxx)未返回有效的反向 dns 条目 - 要么是因为其名称服务器上没有提供有效主机名的 ptr 记录,要么是因为您的 dns 查找失败。首先要尝试的是“nslookup xxxx”,看看你得到了什么。