传输错误代码是0x80040217 - 无法使用asp.classic和CDO发送

时间:2015-10-21 13:59:59

标签: email vbscript asp-classic cdo.message

根据网上的很多帖子,错误信息

  

无法将消息发送到smtp服务器。传输错误代码是0x80040217。服务器响应不可用

由于用户名/密码错误,基本上意味着it doesn't authenticate

我遇到的问题是我运行邮件服务器。我在.net网站上推送电子邮件很好,这个问题只在使用CDO时存在

电子邮件,用户名和密码是正确的,它以明文形式存储在.asp文件中

Set MyMail = Server.CreateObject("CDO.Message")
Set MyConfig = Server.CreateObject ("CDO.Configuration")

'MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "name@example.co.uk"
'MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "passwordIsHere"
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1" 'also tried with localhost, the actual IP of server and mail.example.co.uk (which is set up correctly)
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587 ' also tried 25
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
MyConfig.Fields.Update

任何想法为什么,在我的W2012服务器上,我可以运行我的asp.classic网站,但无法发送电子邮件?

从MS Outlook发送邮件时,电子邮件帐户工作正常。故障仅在此处,在脚本中。

1 个答案:

答案 0 :(得分:1)

所以在评论中进行了一次奇怪的转换后

问题可能是因为(正确的语法高亮显示) sendusernamesendpassword CDO.Configuration属性被注释掉了,所以很可能是邮件服务器未能通过身份验证。

只需删除评论就可以了。

Set MyMail = Server.CreateObject("CDO.Message")
Set MyConfig = Server.CreateObject ("CDO.Configuration")

MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "name@example.co.uk"
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "passwordIsHere"
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1" 'also tried with localhost, the actual IP of server and mail.example.co.uk (which is set up correctly)
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587 ' also tried 25
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
MyConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
MyConfig.Fields.Update