电子邮件未发送

时间:2013-02-18 16:30:50

标签: email vbscript qtp

我想从我的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

3 个答案:

答案 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,因为我无法发布链接

  1. 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