2013-02-18 190 views
0

我想從我的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 
+1

你能'的telnet smtp.gmail.com 25'從生產機器?如果不是,你會得到什麼錯誤? – 2013-02-18 18:21:52

+1

這不需要兩臺機器都安裝Outlook嗎?這可能是問題嗎? – Andrew 2013-02-18 22:04:10

+1

@Andrew:不,Outlook不是必需的。 – 2013-02-19 00:11:11

回答

1

首先,因爲你沒有張貼整個代碼,請檢查您的腳本不包含線

On Error Resume Next 

如果它:刪除線,然後再試一次。

如果你沒有在你的腳本線腳本不會引發錯誤可以telnet mailserver 25那麼幾乎可以肯定的是,郵件服務器接受郵件傳遞和問題是什麼地方上游。檢查郵件服務器日誌。

您可以驗證服務器是否實際接收該郵件是這樣的:

C:\>telnet mailserver 25
220 mailserver ESMTP
HELO clientname
250 mailserver
MAIL FROM:<[email protected]>
250 2.1.0 Ok
RCPT TO:<[email protected]>
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在接受消息時都會使用類似的線路進行響應。

+0

謝謝Ansgar,這非常有幫助,並解決了與「On Error Resume Next」相關的問題, – Manaysah 2013-02-20 11:26:56

1

我會想象這是一個權限問題或防火牆問題,如果它在你的機器上工作而不是生產機器。 仔細看看有什麼不同,是防火牆和其他防火牆的其中之一嗎?

+0

兩臺機器都使用相同的VPN。 – Manaysah 2013-02-18 16:48:01

0

您需要先安裝CDonts庫。在microsoft.com上搜索CDONTS庫並安裝它。

如果你想發送沒有安裝,然後嘗試第二種方法。你必須初始化這些對象。 在那個例子我刪除h。在鏈接,因爲我不能發佈鏈接

  1. CDO.MESSAGE

    「腳本通過QTP發送電子郵件不錯的一個 設置oMessage =的CreateObject(「CDO。消息「)

    '==本節提供了遠程SMTP服務器的配置信息。 '==通常您只會更改服務器名稱或IP。 oMessage.Configuration.Fields.Item _ ( 「TTP://schemas.microsoft.com/cdo/configuration/sendusing」)= 2

    「名稱或遠程SMTP服務器 oMessage.Configuration.Fields的IP。項目_ ( 「TTP://schemas.microsoft.com/cdo/configuration/smtpserver」)= 「」

    「服務器端口(通常25) oMessage.Configuration.Fields.Item _ (「TTP: //schemas.microsoft.com/cdo/configuration/smtpserverport「)= 25

    oMessage.Configuration.Fields.Update o Message.Subject = 「測試郵件」 oMessage.Sender = 「」 oMessage.To = 「」 'oMessage.CC = 「」 ' oMessage.BCC = 「」 oMessage.TextBody = 「測試郵件從QTP」 & vbcrlf & 「的問候,」 & vbcrlf & 「測試」 oMessage.Send

    設置oMessage =無