![Telnet SMTP 给出 OK 但未被接受或排队消息且未收到邮件](https://linux22.com/image/715967/Telnet%20SMTP%20%E7%BB%99%E5%87%BA%20OK%20%E4%BD%86%E6%9C%AA%E8%A2%AB%E6%8E%A5%E5%8F%97%E6%88%96%E6%8E%92%E9%98%9F%E6%B6%88%E6%81%AF%E4%B8%94%E6%9C%AA%E6%94%B6%E5%88%B0%E9%82%AE%E4%BB%B6.png)
我正在尝试调试 CDO.Message.1 错误“80040213”,传输无法连接到服务器。
因此,我正在通过 telnet 测试与 SMTP 服务器的连接。输入数据后,我收到以下响应:
250 ok 1515609773 qp 24996
在不同的 SMTP 服务器上,我得到了类似的信息(来自内存):
250 ok id=734E5544AB
我期待收到有关电子邮件排队或接受的消息。也许所有 SMTP 服务器的做法都不同?
无论如何,最重要的是电子邮件从未到达。这与传输失败消息有关吗?CDO 看到电子邮件实际上没有发送?
我正在从 Windows Server 2008 Datacenter SP1 Azure VM 运行 telnet。
答案1
好吧,我明白了。我在三个不同的地方发现的通过 telnet 测试 SMTP 服务器的标准方法是错误的!
它们不符合 RFC 5322,因为它们不设置发件人标头。如果没有发件人标头,许多电子邮件服务器(如 Gmail)会将电子邮件退回,因为它被怀疑是垃圾邮件。为了“帮助”解决问题,Gmail 会将退回的邮件隐藏在垃圾邮件文件夹中,这样您就永远无法知道问题出在哪里。
简单来说,您需要添加数据。您还可以添加 to: 和 subject:。我不知道这些是否有用或是否必需,没有测试过。from: [email protected]