我正在开发经典ASP&使用CDO.Message在函数中发送电子邮件的Vbscript站点。我遇到了这个功能的麻烦,我收到了错误,
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设置是什么?我应该先打电话给我们的主机&amp;与他们澄清?
答案 0 :(得分:1)
我在使用CDO时遇到了困难,直到我在asp页面的顶部包含了typelib。请注意,类型库不在&lt; %%&gt;内。分隔符。 typelib行很长,所以你需要向右滚动才能全部阅读
首先尝试将typelib语句添加到您的页面。
如果这不起作用,请尝试下面的其余代码。我已在Godaddy托管的网站上成功使用此代码。当然,如果需要,你必须插入你的邮件服务器信息和登录名/密码。
<!--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
%>
答案 1 :(得分:-2)
我将cdoSMTPServer更改为localhost,所有的船型!