Gmail 是否需要 TLS 来接收邮件?

Gmail 是否需要 TLS 来接收邮件?

我目前正在使用 PHP 直接发送电子邮件stream_socket_client()

到目前为止,效果还不错。我能够发送带有 DKIM 签名的 HTML 电子邮件,该签名通过了所有测试https://www.mail-tester.com

我自己的邮件服务器以及 Yahoo 和 AOL 均能接收邮件,且不存在投递或垃圾邮件问题。

但是当我向 Gmail 发送邮件时,不仅邮件没有到达,而且也没有将送达报告发送回返回路径。尽管 SMTP 交换期间没有出现任何错误。

如果我使用 Gmail 发送完全相同的测试电子邮件,mail()它到达时没有问题。我比较了两封电子邮件的来源,它们仅在 DKIM 签名上略有不同,我没有“x”标头,加密标头列表也不同。但我不认为这是问题所在。

我所做的事情与我所做的事情之间唯一不同的mail()是,我还没有使用 TLS。这似乎是一个强有力的候选者,但据我所知,Gmail 并不要求使用 TLS 来接收电子邮件。

我可能还遗漏了什么吗?

以下是 SMTP 交换:

SMTP Connection:

HOST: 220 mx.google.com ESMTP f128si20492958wme.149 - gsmtp

EHLO: 250-mx.google.com at your service, [90.100.136.100]

FROM: 250-SIZE 157286400

RCPT: 250-8BITMIME

DATA: 250-ENHANCEDSTATUSCODES

DATA WRITE: 250-PIPELINING

QUIT: 250-CHUNKING

答案1

问题恰恰相反,Gmail 对所有行尾的要求很严格,而其他服务则不是。

我发现一个多余的行结尾,导致 FROM 处的通信失败。

上面的各种代码实际上是来自 EHLO 调用的多行响应,然后我误以为这些行是后续调用的响应。

相关内容