vbscript(WSH)でメール送信をしようとしています。


エラーは出ないのですが、メールが届きません。
下記の2つのvbsファイルを作ってますがどちらも同様の結果です。
どこがおかしいか見ていただけませんか?

1つめ
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "from@example.com"
oMsg.To = "to@example.com"
oMsg.Subject = "Test "
oMsg.Htmlbody = "<H1>本文です</H1>"
oMsg.Send
msgbox "send"

2つめ
Const AttachFileName="ファイル名"
Const MailFrom="from@example.com"
Const MailTo="to@example.com"
Const MailSubject="Test mail"

Set oMsg = CreateObject("CDO.Message")
oMsg.From = MailFrom
oMsg.To = MailTo
oMsg.Subject = MailSubject
oMsg.TextBody = "このメールは、メール送信WSHで自動送信されたメールです。" & vbCrLf & Now

oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
msgbox "send"

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/02/14 05:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:devichan No.1

回答回数56ベストアンサー獲得回数4

ポイント35pt

smtpサービスが稼動していない環境のように思います。


OSは何ですか?

→XP homeでは稼動しません

smtpサービスは稼動していますか?

→「プログラムの追加と削除」のIISの詳細にてSMTPサービスを確認してください
※ご質問のスクリプトだと、両方自身のコンピュータからの送信内容です

以下のURLをご参考に見直してください

@IT:Windows TIPS -- Tips:Windows標準機能とWSHを使ってメールを送信する

※諮問の意図と違う回答をしてしまっているかもしれませんので

 できればコメントをON状態にされている方が良いと思います。

id:freewriter

osはwin2000proです。

smtpサービスは稼動させていますが、掲題の問題が起こっています。

コメントオンにし忘れましたので、もう一度回答していただいて結構ですよ。

宜しくお願いします。

2008/02/07 07:56:47
id:devichan No.2

回答回数56ベストアンサー獲得回数4

ポイント35pt

エラーは出ないのですか?

outlook2002もインストールされているようなら、エラーも出るようなのですが

あと、わたしはXP環境で、SMTPサービス起動させていないので外部サーバ(yahoo)設定にて、下記のようなスクリプトで送信できました。

Set oMsg = CreateObject("CDO.Message")
oMsg.From = "hogehoge@yahoo.co.jp"
oMsg.To = "hogehoge@gmail.com"
oMsg.Subject = "Test "
oMsg.TextBody = "本文です"& vbCrLf & Now
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.yahoo.co.jp"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = true
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
oMsg.Configuration.Fields.Update
oMsg.Send
msgbox "send"

やはり、ローカルへの接続がうまくいっていないのかアンチウイルス系のファイアウォールの影響かもしれません

ご参考url

WSHからメール送信するときのメモ(管理人日記) - むぅもぉ.jp


※回答を使うのはもったいないと思いますので、コメントOnにできないでしょうか?

 質問を投稿したあとからでも、修正にてコメント許可に変更できますよ

id:freewriter

はい、どちらもエラー出ないんです。

頂いたスクリプトを試すと、The transport failed to connetc to the server.

と出て、動きません。。複数の外部メールサーバで試しましたが同じです。

アンチウイルスのソフトも切ってみましたがだめでした。

ポイントの件ありがとうございます。直しました。

もし何か分かることがあれば、恐縮ですが引き続きお願いできるとうれしいです。

よろしくおねがいします。

2008/02/07 21:53:44
  • id:devichan
    あのぉ、ひょっとして、サンプルで書いたスクリプトそのものを使われちゃいましたか?。
    ユーザ名とかメールアドレスは、きちんと実在するものでないと、拒否されますよ。
    もし、外部のメールアドレスをお持ちであれば、それに書き直されて試してみてください。
    エラーに関しては以下も参考にしてくださいね。
    http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.sendmailerroreventargs.exception(VS.80).aspx

    あと、質問で記載されているスクリプトも、実際試されたもの、そのものなんですか?
    それだと、メールアドレスおよびドメインは、サーバに設定しているものでないとダメです。
    また、最近だと、セキュリティの関係で外部のメールサーバは、(インターネット上に)実在するドメイン・メールアドレスからしか受け取らないところが多いです。
    その点も注意してください。
  • id:freewriter
    おつきあい頂き、大変ありがとうございます。

    アカウントは実際に使っているものに変えてます。
    質問に載せているスクリプトも、そうです。
    fromも実際のアドレスにしています。

    ではページ見てみますね。ありがとうございました。
  • id:devichan
    なるほど、
    同じような現象の方が、以下の投稿をされています。
    http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-1291.htm
    これにいたっても、解決手段までにはいたっていないようです。
    (ただ2003年の投稿です)

    また、下記urlも参考になるかと思います
    http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-9911.htm
    このなかで
    ------------------------------------------------------
    ■ SmtpMail.SmtpServer プロパティを省略している、または
    SmtpMail.SmtpServer="localhost" と記述して、
    ローカルマシンの IIS SMTP Service を利用する場合

    例5. SMTP Service がインストールされていない場合のエラー

    「The transport failed to connect to the server」
    ------------------------------------------------------
    という回答もみつけました。が、インストールされているとの事でしたので

    インターネットサービスマネージャで
    「既定のSMTP仮想サーバー」 プロパティ
    →[アクセス] タブ→「localhost(127.0.0.1)」 への中継を許可
    を確認してみてください。

    その他・・・・
    この質問をキャンセルできるようであれば、キャンセルし、
    今までのやり取りの結果をまとめ、
    再投稿して見られてはいかがでしょう?
    (私だけでは、解決には至らないようなので)
    (投稿する時間帯は夜の21時辺りが良いかと思います。他に解決策をお持ちの方がいらっしゃるようでなりません)

    申し訳ありません。


この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません