我想从我的vbscript代码发送一封电子邮件,下面的代码在我的机器上正常运行,但是当我更换机器时,代码不再能够发送电子邮件了。 运行期间没有发生任何错误或问题,但没有发送/发送电子邮件。 还有其他人遇到过像这样的问题吗?
Set objMessage = CreateObject("CDO.Message")
With objMessage
.From = SendFrom
.To = SendTo
.Subject = "Subject"
.Textbody = ""
.HTMLBody = "<b>Body</b>"
With .Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SMTP.Gmail.Com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Username"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Password"
.Update
End With
.Send
End With
答案 0 :(得分:1)
我认为这是一个权限问题或防火墙问题,如果它在您的计算机上工作但不在生产计算机上。 仔细看看有什么不同,是防火墙后面的其他不是吗?
答案 1 :(得分:1)
首先,由于您没有发布整个代码,请检查您的脚本是否包含一行
On Error Resume Next
若是:删除该行并重试。
如果您的脚本和中没有该行,则脚本不会引发错误和您可以telnet mailserver 25
那么几乎可以肯定邮件服务器接受邮件传递,问题出在上游某处。检查邮件服务器日志。
您可以验证服务器是否实际接受这样的邮件:
C:\>
的telnet mailserver 25
强>
220 mailserver ESMTP
的HELO clientname
强>
250 mailserver
的MAIL FROM:<joe.average@example.com>
强>
250 2.1.0 Ok
的RCPT TO:<joe.average@example.com>
强>
250 2.1.5 Ok
的DATA
强>
354 End data with <CR><LF>.<CR><LF>
的Subject: test
强>
的test
强>
的.
强>
250 2.0.0 Ok: queued as 4541E2227
的QUIT
强>
QUIT
命令之前的行表示服务器接受了邮件。实际的响应文本可能会有所不同,具体取决于使用的是哪个MTA,但每个MTA都会在接收到消息时响应某些行。
答案 2 :(得分:0)
您需要先安装CDonts库。在microsoft.com上搜索CDONTS库并安装它。
如果您想在没有安装的情况下发送,请尝试第二种方法。你必须初始化对象。 在该示例中,我删除链接中的h,因为我无法发布链接
CDO.MESSAGE
'通过QTP发送电子邮件的脚本很好 设置oMessage = CreateObject(“CDO.Message”)
'==本节提供远程SMTP服务器的配置信息。 '==通常您只会更改服务器名称或IP。 oMessage.Configuration.Fields.Item _ (“ttp://schemas.microsoft.com/cdo/configuration/sendusing”)= 2
'远程SMTP服务器的名称或IP oMessage.Configuration.Fields.Item _ (“ttp://schemas.microsoft.com/cdo/configuration/smtpserver”)=“”
'服务器端口(通常为25) oMessage.Configuration.Fields.Item _ (“ttp://schemas.microsoft.com/cdo/configuration/smtpserverport”)= 25
oMessage.Configuration.Fields.Update oMessage.Subject =“测试邮件” oMessage.Sender =“” oMessage.To =“” 'oMessage.CC =“” 'oMessage.BCC =“” oMessage.TextBody =“来自QTP的测试邮件”&amp; vbcrlf&amp;“问候”,&amp; vbcrlf&amp;“测试” oMessage.Send
设置oMessage = Nothing