首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDO.Message -“传输无法连接到服务器。”

CDO.Message -“传输无法连接到服务器。”
EN

Stack Overflow用户
提问于 2009-11-29 11:32:21
回答 2查看 62.6K关注 0票数 3

我在一个经典的ASP & Vbscript网站上工作,它在一个函数中使用CDO.Message发送电子邮件。我在这个函数上遇到了麻烦,并且收到了这个错误。

代码语言:javascript
复制
CDO.Message.1 error '80040213'

The transport failed to connect to the server.

我认为这与SMTP身份验证设置和我们运行的共享主机有关。我正在寻找进一步调试这个问题的帮助。

下面是该函数的主要代码片段,

代码语言:javascript
复制
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设置?我应该先打电话给我们的主办方并向他们澄清吗?

EN

回答 2

Stack Overflow用户

发布于 2011-11-07 10:26:28

我在使用CDO时遇到了一些困难,直到我在asp页面的顶部添加了typelib。请注意,类型库不在<% %>分隔符内。typelib行相当长,因此需要向右滚动才能全部阅读

尝试先将typelib语句添加到您的页面。

如果这不起作用,那么尝试下面的其余代码。我已经成功地在我的网站上使用了这段代码。当然,如果需要的话,你必须输入你的邮件服务器信息和登录/密码。

代码语言:javascript
复制
<!--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
EN

Stack Overflow用户

发布于 2009-11-30 19:31:07

我把cdoSMTPServer改成了本地主机,全是船的形状!

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1814553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档