![Sendmail 发件人地址的域无法解析。无法发送任何电子邮件。](https://linux22.com/image/630675/Sendmail%20%E5%8F%91%E4%BB%B6%E4%BA%BA%E5%9C%B0%E5%9D%80%E7%9A%84%E5%9F%9F%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E3%80%82%E6%97%A0%E6%B3%95%E5%8F%91%E9%80%81%E4%BB%BB%E4%BD%95%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E3%80%82.png)
我对 Sendmail 一头雾水。我刚刚接手了一个使用 sendmail 的应用程序,之前没有任何经验。我使用的是 Ubuntu 10.04.4 LTS。最近我们发现用户不再收到电子邮件。我尝试使用以下命令进行测试,但这似乎不会在邮件日志中触发任何活动。
sudo sendmail -s 'Hello world' [email protected]
查看 sendmail 日志后,我发现与发件人地址域名未解析有关的消息。域名 li31313-134 似乎有问题。见下文:
Apr 9 16:42:07 localhost sendmail[18230]: s39Kg7nA018230: from=www-data, size=598, class=0, nrcpts=1, msgid=<201404092042.s39Kg7nA018230@li313-134>, relay=www-data@localhost
Apr 9 16:42:07 localhost sendmail[18230]: s39Kg7nA018230: [email protected], delay=00:00:00, mailer=esmtp, pri=30598, dsn=4.4.3, stat=queued
Apr 9 16:43:51 localhost sendmail[18247]: s39KhpLD018247: from=jparker, size=149, class=0, nrcpts=1, msgid=<201404092043.s39KhpLD018247@li313-134>, relay=jparker@localhost
Apr 9 16:43:51 localhost sm-mta[18248]: s39KhpDC018248: ruleset=check_rcpt, arg1=<root@li313-134>relay=localhost.localdomain [127.0.0.1], reject=451 4.1.8 Domain of sender address jparker@li313-134 does not resolve
我尝试修改 /etc/hosts,但没有成功。下面是我当前的 hosts 文件。如您所见,我尝试了几种组合:
127.0.0.1 localhost.localdomain localhost
<EXTERNAL IP> li313-134 li313-134.
127.0.0.1 li313-134 li313-134.
另一个我无法排除的问题是 IPTABLES 阻止了外发邮件。同样,我没有太多经验,但我尝试确保端口 25 可以发送/接收。我可以正常接收邮件。IPTABLES 规则如下。其中可能有几个恶意规则:
Chain INPUT (policy DROP 10 packets, 508 bytes)
num pkts bytes target prot opt in out source destination
1 210K 67M fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
2 4986K 6254M ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
3 27M 4312M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22,80,443,3690,5432,8999:9003
4 147 10052 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 53
5 18M 12G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6 0 0 DROP all -- * * 23.91.20.0/24 0.0.0.0/0
7 51 2464 DROP all -- * * 23.0.0.0/8 0.0.0.0/0
8 75 6399 DROP all -- * * 192.0.0.0/8 0.0.0.0/0
9 0 0 DROP all -- * * 192.0.0.0/8 0.0.0.0/0
10 9425 669K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
11 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 state NEW,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 11M packets, 766M bytes)
num pkts bytes target prot opt in out source destination
1 4986K 6254M ACCEPT all -- * * 127.0.0.1 0.0.0.0/0
2 39M 16G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 0 0 ACCEPT tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:25 state ESTABLISHED
答案1
简单的解决方法是将主机重命名为 DNS 中实际存在的名称。
答案2
好的,IPTABLES 是罪魁祸首。我刷新了规则,重新启动了 sendmail,然后收到大量电子邮件。现在我将恢复 IPTABLES 规则并找出阻止 DNS 的规则。