我尝试过 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:与 {server} 的连接超时”。我束手无策,因为我在每台服务器上都使用相同的设置,但它们都正常工作。
答案1
如果您不能使用端口 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
答案2
我不知道如何读取 Sendmail 日志,但是在我看来它看起来像这样:
前两行表示您发送的服务器(127.0.0.1 - localhost)接受了客户端电子邮件以传送到远程系统。前两行表示本地服务器(您的服务器)接受了来自电子邮件客户端(可能是服务器本身)的电子邮件。它并不表示已与远程系统建立连接并且远程系统已接受电子邮件。
第三行和第四行表示您的服务器尝试将电子邮件传递到远程系统,并表示电子邮件在远程系统上被延迟。
远程系统可能将您的传入电子邮件列入灰名单。您的服务器的出站 FQDN 是什么?您是否在公共 DNS 区域中为此 FQDN 设置了 A、PTR 和 SPF 记录?
正如 voretaq7 所建议的,您能否从您的服务器到远程系统建立到端口 25 的 telnet 连接并进行成功的 SMTP 对话(尝试在通过 telnet 连接时发送测试电子邮件)?