通过TLS发送电子邮件

3

我尝试使用TLS和端口号为587以及服务器名为smtp.gmail.com发送电子邮件,但是一直收到“错误'8004020e'”。我将SSL设置为false,因为端口587的身份验证方式是TLS。我的代码有什么问题吗?

Set objMail = Server.CreateObject("CDO.Message")

Set objConfig = CreateObject("CDO.Configuration")

objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = false 
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "xx@gmail.com"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "xx"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objConfig.Fields.Update

Set objMail.Configuration = objConfig

objMail.From     = "xx@gmail.com"
objMail.To       = "yy@yahoo.com"

objMail.Subject  = "Test EMAIL"
objMail.TextBody = "Test EMAIL"
objMail.HTMLBody = "fffffffffff"

objMail.Send
Set objMail = Nothing

请查看此链接:https://dev59.com/iNPus4cB2Jgan1zn8HyE#32788150 - Flakes
1
objConfig.Fields("http://sc...on/smtpusessl") = True 是 TLS 所必需的。 - Ansgar Wiechers
感谢分享您的链接,但仍然出现错误。我将smtpusessl更改为true,并将smtp端口更改为25。完全按照您给我的链接操作。smtpusessl是SSL或STP所必需的吗?根据我的了解,CDO无法支持TLS?有vbscript的任何解决方案吗? - Wan Aideed
端口25用于MTA到MTA的通信。对于MUA到MTA的通信(邮件提交),请使用端口587(提交)或端口465(smtps)。 - Ansgar Wiechers
1个回答

2

对于Gmail或Amazon SES SMTP,请使用端口465,并使用SSL(smtpusessl = True)。

还需要确保(登录Gmail帐户邮箱,检查是否有消息告诉您以前的尝试未成功),已启用“旧应用程序”的邮箱使用...(这是一个新的“功能”,自不久以来可以在Yahoo和Google邮件服务器上启用...甚至可能某些移动电子邮件客户端如果没有设置此项,则无法正常工作。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接