我在一个经典的ASP & Vbscript网站上工作,它在一个函数中使用CDO.Message发送电子邮件。我在这个函数上遇到了麻烦,并且收到了这个错误。
CDO.Message.1 error '80040213'
The transport failed to connect to the server.我认为这与SMTP身份验证设置和我们运行的共享主机有关。我正在寻找进一步调试这个问题的帮助。
下面是该函数的主要代码片段,
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields
' Set config fields we care about
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "mail.<website>.com"
'.Item(cdoSMTPServerPort) = 25
'.Item(cdoSMTPConnectionTimeout) = 10
'.Item(cdoSMTPAuthenticate) = cdoBasic
'.Item(cdoSendUserName) = "support"
'.Item(cdoSendPassword) = "password"
.Update
End With
Set objMessage = Server.CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig
With objMessage
.To = lEmailTo '"Display Name <email_address>"
.From = lEmailFrom '"Display Name <email_address>"
.Subject = lSubject
.TextBody = lMessage
.Send
End With起初,我认为可能是上面代码片段中的注释行9-13,但似乎以前的开发人员故意对它们进行了注释,并且电子邮件功能在某个时间点上仍然有效。取消对这些行的注释仍然不能解决错误。
有没有人看到我可能遗漏的东西?有没有人知道CDO.Configuration的默认值是什么,以及这段代码试图在我们的共享主机上使用什么SMTP设置?我应该先打电话给我们的主办方并向他们澄清吗?
发布于 2011-11-07 10:26:28
我在使用CDO时遇到了一些困难,直到我在asp页面的顶部添加了typelib。请注意,类型库不在<% %>分隔符内。typelib行相当长,因此需要向右滚动才能全部阅读
尝试先将typelib语句添加到您的页面。
如果这不起作用,那么尝试下面的其余代码。我已经成功地在我的网站上使用了这段代码。当然,如果需要的话,你必须输入你的邮件服务器信息和登录/密码。
<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->
<%
Sub SendEmail()
Set cdoConfig = CreateObject("CDO.Configuration")
if lcase(Request.ServerVariables("SERVER_NAME")) = "dev" then
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "xxx.<devmailservername>.xxx"
.Item(cdoSMTPAuthenticate) = 1
.Item(cdoSendUsername) = "xxxxxxxx@yyyyyyyyy.com"
.Item(cdoSendPassword) = "<passwordgoeshere>"
.Update
End With
else
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "xxx.<productionmailservername>.xxx"
.Update
End With
end if
Set cdoMessage = CreateObject("CDO.Message")
With cdoMessage
Set .Configuration = cdoConfig
.From = "xxxxxxx@yyyyyyyy.com"
.To = "yyyyyyyy@zzzzzzzzz.com"
.Subject = "Sample CDO Message"
.htmlbody = "<html><body>Sample <b>CDO</b> message.</body></html>"
.TextBody = "Sample CDO Message."
.Send
End With
Set cdoMessage = Nothing
Set cdoConfig = Nothing
End Sub
%>发布于 2009-11-30 19:31:07
我把cdoSMTPServer改成了本地主机,全是船的形状!
https://stackoverflow.com/questions/1814553
复制相似问题