至少10年,直到最近,我已经成功地通过SMTP发送电子邮件,通过使用带有CDO.Message.的简单VBScript
Set emailObj = CreateObject("CDO.Message")
emailObj.From = "myemail@hotmail.com>"
emailObj.To = "myemail@hotmail.com"
emailObj.Subject = "Test Email"
emailObj.TextBody = "This is a SMTP test email."
Set emailConfig = emailObj.Configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp-mail.outlook.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "myemail@hotmail.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
emailConfig.Fields.Update
emailObj.Send
然而,通过一项新的测试,我注意到广泛使用的电子邮件提供商的SMTP不再有效(雅虎、GMail、Hotmail、Mail.com、Yandex(。
对于所有这些,我都收到了错误消息:
传输无法连接到服务器
为了确保这不是我的问题,我在许多计算机、国家和帐户上进行了测试。我一直在用官方提供的SMTP详细信息和端口25465587进行测试。他们中的任何一个都没有运气。
该代码仍然可以成功地与我自己公司的SMTP和我们的网络托管SMTP配合使用。
我们将软件分发给我们的客户,我们不希望他们依赖我们自己的SMTP来中继他们的邮件。他们应该能够在我们的软件上轻松设置他们的个人电子邮件帐户。过去,这就像查看他们自己的电子邮件提供商网站并输入提供的SMTP详细信息一样简单。然而,如今这样琐碎的任务似乎已经变得不可能了。
我在这里遗漏了什么吗?使用Visual Basic Script和CDO仍然可以使用广泛使用的电子邮件提供商的SMTP吗?
以下是常见电子邮件提供商及其方法的列表。
我只是不明白VBScript如何在10行代码中做到这一点。
- MAILTRAP-EXPLICIT TLS连接(STARTTLS(
- GMAIL-IMPLICIT TLS连接(SSL(
- iCLOUD-EXPLICIT TLS连接(STARTTLS(
- OUTLOOK-EXPLICIT TLS连接(STARTTLS(
- YAHOO.COM-EXPLICIT TLS连接(STARTTLS(
- MAIL.COM-EXPLICIT TLS连接(STARTTLS(
- AOL.COM-EXPLICIT TLS连接(STARTTLS(
- COMCAST.NET-EXPLICIT TLS连接(STARTTLS(