我正试图在Windows Server 2008 R2,IIS 7.5上发送带有经典ASP的电子邮件(我被旧应用程序困住,所以我必须在这里使用经典ASP)。
我猜很多东西从win server 2003变为2008.我使用下面的代码但是我收到了这个错误(BTW,错误信息是如此“信息性”);
错误'8004020f'
/poo.asp,第32行
这是代码;
<!--
METADATA
TYPE="typelib"
UUID="CD000000-8B95-11D1-82DB-00C04FB1625D"
NAME="CDO for Windows 2000 Library"
-->
<%
'Declare variables
Dim sch, cdoConfig, cdoMessage
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "mail.example.com"
'Set SMTP port which is 25 by default
.Item(sch & "smtpserverport") = 587
.Update
End With
Set cdoMessage = CreateObject("CDO.Message")
With cdoMessage
Set .Configuration = cdoConfig
.From = "info@example.com"
.To = "me@example2.com"
.Subject = "Sample CDO Message"
.TextBody = "This is a test for CDO.message"
.Send
End With
Set cdoMessage = Nothing
Set cdoConfig = Nothing
Response.write "<HTML><head><title>A message has been sent.</title></head><body>A message has been sent.</body></HTML>"
%>
此外,我刚刚将{strong> Microsoft Exchange Server MAPI客户端和协作数据对象1.2.1 从http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1004安装到我的服务器中,但它没有改变任何内容。
注意:如果有效,我可以通过localhost发送电子邮件。没关系。
答案 0 :(得分:4)
您可能会遇到以下错误:
错误'8004020f'此订阅的事件类位于
中无效分区
此错误消息来自cdosys.h,与任何类型的“分区”无关 - 它实际上与重载消息中的其他错误混在一起。错误代码实际上归因于以下内容:
CONST LONG CDO_E_RECIPIENTS_REJECTED = 0x8004020FL
这意味着服务器因某种原因拒绝了电子邮件。以下是一些可以尝试缓解问题的方法:
确保SMTP服务器允许匿名(未经身份验证)中继。如果您的SMTP需要传出身份验证,请参阅Article #2026。
检查问题是否特定于收件人电子邮件地址中使用的域名。例如,一些用户抱怨他们只能在自己的域上发送给用户;其他人说他们可以发送到除他们自己以外的任何域名(请参阅Article #2511了解一些可能的原因和解决方案)。
可能只是拒绝了电子邮件地址,但SMTP服务器上的其他配置设置阻止将真正的错误消息中继回到ASP脚本...所以请验证地址有效。
如果您有代理或防火墙,请确保将Web服务器设置为正确通过它,SMTP服务器知道它,并且代理允许访问端口25.
尝试使用SendUsing值1(拾取)而不是2(端口)。例如。以下一行:
.Item(cdoSendUsingMethod) = cdoSendUsingPort
成为
.Item(cdoSendUsingMethod) = cdoSendUsingPickup
http://classicasp.aspfaq.com/email/why-does-cdo-message-give-me-8004020f-errors.html