• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSでメール送信)

VBSでメール送信

このQ&Aのポイント
  • VBS初心者のためのメール送信方法と注意点
  • 特定のフォルダにファイルが追加されたらメール送信するVBSの作成方法
  • VBSでファイルを添付してメールを送信する方法と問題の解決策

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 簡単なところから回答いたします。 > なぜか送信受信ともに,まったくおなじメールが2通作成されてしまいます。  これは、 oMsg.Configuration.Fields.Update oMsg.Send がダブっているからです。  参考にされた サイト にも2回は書いてありません。  コーディング をされる際に、誤ってコピペでもされたのでしょうが、メール送信スクリプト などを書かれるときには、細心の注意が必要です。 ●CDO.Messageによるメール送信 http://serialty.blog117.fc2.com/blog-entry-10.html のように、[With ステートメント] を使ったり、長い文字列を strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/" というように、定数に代入したりして、コード の可読性を高める工夫をされることをお薦めします。 -------------------------------------------------- >「最新のファイルを添付して送信」することはできないでしょうか?  お示しの コード で添付ファイルを決定しているのは、   For Each F In Fl.Files     If F.Name > NewFile Then       NewFile = F.Name     End If   Next の部分ですが、これは、strPath フォルダ 内の ファイルを、名前順に巡回(For ~ Next ループ)して、最後の ファイル を NewFile に代入しています。  従いまして、NewFile に代入されるのは、「前から置いてある別のファイル」ではなくて、名前の昇順に並べた場合の最後の ファイル ということになります。  「最新のファイル」を特定するためには、strPath フォルダ 内の ファイル の更新日時や作成日時を検証して、最も新しいものを NewFile に代入するということになりますが、手っ取り早いのは、 oMsg.Send した後で、添付ファイル を別の フォルダ(例えば「送信フォルダ」の下に「送信済み」フォルダ でも作っておいて、そこ)に移動するのが良いかと存じます。 -------------------------------------------------- > どこを直せばいいでしょうか?  私は hotmail 環境がありませんので、試しようがありませんが、WEB でいろいろと検索してみますと、 ・CreateObject("CDO.Message") は万能ではない。 ・スパム防止策で Microsoft ができないようにしている。 というような意見が見受けられます。  一方、 ●[Template] Send SMTP email with Visual Basic Script (vbs) from Command Prompt using CDO([テンプレート] CDOを使用して、コマンドプロンプトからVisual Basicスクリプト(VBS)でSMTP電子メールを送信) http://www.unix.com/windows-dos-issues-discussions/194939-template-send-smtp-email-visual-basic-script-vbs-command-prompt-using-cdo.html には、live.com からでも メール が送れる スクリプト というような感じで書かれていますので、こちらをご参考になさってみてください。  ただし、ウィキペディア(http://ja.wikipedia.org/wiki/Hotmail)には、 > Hotmail(ホットメール)は、MSNが提供していた(過去形)Webメールサービスである。 と書かれており、Microsoft としても仕様の変更を頻繁に行なっているようですので、何とも申せませんねぇ。。。

masunona
質問者

お礼

すごく丁寧に教えていただき大変感謝しています! >oMsg.Configuration.Fields.Update >oMsg.Send >がダブっているからです。 確認ミスから単純な質問をしてしまい申し訳ありませんでした。 添付ファイルの選別については, 日付等の検証から新しいものを・・・は難しそうだったので,とりあえず 教えていただいたように, 別の新しいフォルダを作成し,そこにコピーしてから送信,という方法を採りました。 Hotmailでうまく動作しないのはMicrosoft側の問題もあるようなのですね。 社内で調整していきたいと思います。 教えていただいたように修正したところうまく動作して大変うれしいです! 本当にありがとうございました!!

関連するQ&A