我知道有很多与此相关的问题,但似乎没有一个适合我的答案。
我的应用程序是 ASP Classic,它运行的服务器是 Windows Server 2000(我知道很旧),我使用 Office365 服务器,并且在登录电子邮件时使用 Office365 提供的信息(端口 587,正确的用户名和密码、正确的 smtp 服务器、TLS 设置为 true)。
我总是收到“CDO.Message.1 错误‘80040213’传输无法连接到服务器”。作为错误消息,它出错的行是 .Send 命令。
Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
'Use SSL for the connection (False or True)
Const cdoSendTLS = "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
' create CDOSYS objects
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'Set our smtp server
objCDOSYSCon.Fields.Item(cdoSMTPServer) = "smtp.office365.com"
objCDOSYSCon.Fields.Item(cdoSMTPAuthenticate) = cdoBasic
objCDOSYSCon.Fields.Item(cdoSendUserName) = "[email protected]"
objCDOSYSCon.Fields.Item(cdoSendPassword) = "password"
'objCDOSYSCon.Fields.Item(cdoSMTPServerPort) = 587
objCDOSYSCon.Fields.Item(cdoSendUsingMethod) = cdoSendUsingPort
objCDOSYSCon.Fields.Item(cdoSendTLS) = True
objCDOSYSCon.Fields.Item(cdoSMTPConnectionTimeout) = 30
objCDOSYSCon.Fields.Update
'Use our new configurations for our mailer
Set objCDOSYSMail.Configuration = objCDOSYSCon
strSpecFile = Application("px683_network_downloads_specs") & strSpecFileName
objCDOSYSMail.From = "[email protected]"
objCDOSYSMail.To = "[email protected]"
objCDOSYSMail.Subject = "A subject"
objCDOSYSMail.HTMLBody = "Some text for the body"
'Normal level of importance
objCDOSYSMail.Send
set objCDOSYSMail = nothing
set objCDOSYSCon = nothing
我也尝试过端口 25,但没有成功。如果我使用另一个根本不使用 SSL 的电子邮件服务(本地服务,而不是 Office365),我没有问题(我注释掉 usessl 并将端口更改为 25)。此外,如果我尝试使用在 ASP.Net 应用程序中完美运行的其他电子邮件服务,我也会遇到同样的问题,该其他电子邮件服务使用端口 25 和 SSL,而不是 Office365 服务。
我以前也遇到过这个问题。基本上,您没有经过身份验证才能使用服务器上的邮件传输。
您的 SMTP 服务器不允许发送出站邮件(例如停止邮件中继)、您的用户名和密码不正确或者您使用的端口需要更高的安全级别才能发送邮件。在后面的实例中,Office365 可能需要 SSL 身份验证...也许值得查看那里。
如果所有其他方法均失败,您可以尝试使用第三方提供商。我们使用 SendInBlue 的 4.35 英镑套餐。您最多可以通过他们的系统发送 40,000 封电子邮件。我们发现,将邮件发送给第三方可以完全消除服务器设置停止邮件传输功能的问题。我们现在将其用于经典 ASP 和 PHP 网站。
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)