我正在尝试调试 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]