使用 CDO.Message 发送电子邮件 - 发送到外部地址时失败

sending email using CDO.Message - fails when sending to external address

我正在尝试使用 CDO.Message 从我的网络服务器发送电子邮件。 发送到内部电子邮件地址时一切正常,但发送到外部电子邮件地址时失败。

error '8004020f'
sendmail.asp, line 46

第 46 行是 myMail.Send

我已经尝试过使用身份验证(目前已注释掉),也尝试过不使用身份验证,但仍然出现相同的错误。 尝试了我在这里找到的各种建议,但到目前为止没有任何效果。

我假设这是一个身份验证问题,但即使我使用身份验证也失败了。

"from" 地址是邮件服务器上的有效真实账户。 user/pass 设置用于 "from" 地址。

有任何指示可以指出这一点吗?

Set myMail=CreateObject("CDO.Message")
myMail.Subject="subject_goes_here"
myMail.From="from_email_address"
myMail.To="to_email_address"
myMail.TextBody="body goes here"

myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver")="mail_server_address"
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25
'myMail.Configuration.Fields.Item _
'("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
'myMail.Configuration.Fields.Item _
'("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"


myMail.Configuration.Fields.Update
myMail.Send
set myMail=nothing

Web 服务器是 Windows Server 2003 R2 上的 IIS6。 邮件服务器是 Exchange。

更新 - 我现在正在尝试使用 gmail 发送电子邮件,但遇到了不同的错误。

CDO.Message.1 error '80040213'
The transport failed to connect to the server.
sendemail.asp, line 48

我使用的代码是

myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 20
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmailusername"
myMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"

好吧,我最终解决了这个问题。 但我们最终使用了不同的邮件提供商,它允许经过身份验证的 SMTP 中继。