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
4

3 に答える 3

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 は、メッセージを受け入れるときにそのような行で応答します。

于 2013-02-19T14:32:06.000 に答える
1

実稼働マシンではなくマシンで動作している場合、これはアクセス許可の問題またはファイアウォールの問題であると思います。違いを注意深く見てください。1 つはファイアウォールの背後にあり、もう 1 つはそうではありませんか?

于 2013-02-18T16:39:12.763 に答える
0

最初に CDonts ライブラリをインストールする必要があります。microsoft.com で CDONTS ライブラリを検索し、同じものをインストールします。

インストールせずに送信する場合は、2 番目の方法を試してください。オブジェクトを初期化する必要があります。その例では、リンクを投稿できないため、リンクの h を削除します

  1. CDO.メッセージ

    'QTP を介して電子メールを送信するスクリプト

    '==このセクションは、リモート 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 からのテスト メール"&vbcrlf&"よろしく"&vbcrlf&"テスト" oMessage.Send

    oMessage = Nothing に設定

于 2013-02-20T18:33:01.593 に答える