我尝试了 10 封托管在 Google、Yahoo!、GoDaddy 和一些私人托管的不同电子邮件,每次都收到以下错误。我已阻止敏感信息,但您将能够看到错误。
Feb 16 17:06:50 xxxxx sendmail[31824]: o1GM6ovJ031824: [email protected], ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30054, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o1GM6oJo031825 Message accepted for delivery)
Feb 16 16:54:19 xxxxx sendmail[31625]: o1GLsJPP031625: [email protected], ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30097, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o1GLsJah031626 Message accepted for delivery)
Feb 17 09:05:52 xxxxx sm-mta[10620]: o1H6Z3jM005734: to=<[email protected]>, ctladdr=<[email protected]> (33/33), delay=07:30:49, xdelay=01:15:36, mailer=esmtp, pri=571331, relay=aspmx3.googlemail.com. [209.85.222.4], dsn=4.0.0, stat=Deferred: Connection timed out with aspmx3.googlemail.com.
Feb 17 10:35:23 xxxxx sm-mta[12828]: o1HEZwn8011833: to=<[email protected]>, ctladdr=<[email protected]> (33/33), delay=00:59:25, xdelay=00:12:36, mailer=esmtp, pri=300353, relay=aln-mailrelay.att.net. [12.102.252.75], dsn=4.0.0, stat=Deferred: Connection timed out with aln-mailrelay.att.net.
如果您看一下,它们都会发送,但是(几小时后)我收到错误“stat = Deferred:Connection timed out with {server}”。我束手无策,因为我在每台服务器上都使用相同的设置,而且它们都可以工作。
如果您不能使用端口 25,您通常可以使用端口 587,因为这是设计用于在服务器之间使用的 SMTP 传递端口。
如果您的 ISP 阻止端口 25,请对其进行测试。
DNS 看起来也在工作,因为它返回远程服务器的 IP 地址。是的,测试端口 587 并改为在该端口上发送。
编辑:在 25 日测试它对我有用。
~$ telnet aspmx3.googlemail.com 25 正在尝试 72.14.213.27... 已连接到 aspmx3.googlemail.com。转义字符是 '^]'。220 mx.google.com ESMTP q20si8879349rvl.138
我不知道如何阅读 Sendmail 日志,但这对我来说是这样的:
前两行表明您通过 (127.0.0.1 - localhost) 发送的服务器接受了客户端电子邮件以传送到远程系统。前两行表明本地服务器(您的)接受了来自电子邮件客户端(可能是服务器本身)的电子邮件。它并不表示已与远程系统建立连接并且远程系统已接受电子邮件。
第三行和第四行表示您的服务器将电子邮件发送到远程系统的出站尝试,并表示电子邮件在远程系统上被延迟。
可能是远程系统将您收到的电子邮件列入灰名单。您的服务器的出站 FQDN 是什么?您是否在公共 DNS 区域中为此 FQDN 设置了 A、PTR 和 SPF 记录?
正如 voretaq7 建议的那样,您能否建立从服务器到远程系统的 25 端口的 telnet 连接并进行成功的 SMTP 对话(尝试在通过 telnet 连接时发送测试电子邮件)?