我正在使用cdo发送电子邮件,以下代码失败
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "localhost"
.Update
End With
当我发送电子邮件时,我收到以下错误
8004020f
然后我将代码更改为以下内容:
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPickup
.Item(cdoSMTPServer) = "localhost"
.Update
End With
电子邮件发送没有问题。我可以采取哪些步骤来解决cdoSendUsingPort无法正常工作的原因?
答案 0 :(得分:2)
使用cdoSendUsingPort
,CDO会尝试在TCP端口25上打开与您指定的SMTP服务器(在您的情况下为localhost
)的连接。我猜您没有运行您的计算机上有SMTP
服务器,因此没有任何内容正在侦听端口25,并且呼叫失败。
使用cdoSendUsingPickup
,CDO将邮件转发到本地IIS实例的pickup directory以供稍后处理。我猜您的计算机上安装了IIS,并且其SMTP模块配置为使用取件,因此呼叫成功。
答案 1 :(得分:1)
教授Google发现(按顺序):
- Several options:服务器不允许匿名中继,服务器拒绝特定收件人域,SMTP服务器以意外方式拒绝收件人,和/或代理或防火墙设置阻止邮件。
- Your mailserver is configured to not relay from your source machine.
- ......以及其他几个归结为所列第一个链接的东西。
您可以通过从发送计算机telnet到邮件服务器performing a normal SMTP interaction直接测试这些内容,并查看显示的消息。