2013/04/11

バッチファイルやコマンドプロンプトから添付ファイルをつけてメール送信

自動でメールを送信したい、コマンドラインでメール送信したい、バッチファイルからメール送信したい、
Windows標準機能でメール送信したい、タスクなどでBATファイルやCMDファイルを実行して処理の結果をメール送信したい、
ログなどの添付ファイルをつけて送信したい時など、ちょっとした時にいろいろフリーなんかのツールを探すのですが、
なかなか良いものが見つからず、自分であちこち参考にしながらスクリプトを作成してみました。
WindowsServer管理者のかたは必見です。(笑)

WSHで(jscriptですが)作られているので、標準のcscript.exeをつかって実行します。
(おそらくちょっと改造したらVBSでも動作するかと・・)
メールの送信部分はCDO.Messageを使って作成していますので、DLLも不要で、もちろんインストールも必要ありません。
そのまま、適当なフォルダに格納していただき、作成したBATファイルやコマンドプロンプトから呼び出してみてください。



◯動作環境
WindowsのWSHで動作します。Windows 2003 Serverや2008や
WindowsXP,Vista,7でも動作します。
64bitとか32bitとかも関係ないです。

◯特徴
添付ファイルに対応してます。
メールアドレスは「,」カンマで複数区切りもでき、CC、BCCも指定できます。
おそらく、smtpAuthにも対応できているかと・・・(汗)
バグなどがあればコメントください。

◯ダウンロードはこちらから
https://docs.google.com/file/d/0B2c_NHwr0DF7U25sbW04ZWkwVDQ/edit?usp=sharing

◯使い方
mailBatSend.iniファイルにメール(SMTP)サーバのアドレスとポート番号を指定して、
下の例のようにスクリプトにパラメタを渡す形式で実行してください。
例1)
cscript //Nologo mailBatSend.js "mailaddrFROM@hogehoge.com" "mailaddrTO@hogehoge.com" "Subject"

例2)※複数行に分かれてるかもですが1行で指定してください
cscript //Nologo mailBatSend.js "mailaddrFROM@hogehoge.com" "mailaddrTO@hogehoge.com" "Subject" "MessageBody" "C:\\hogefile.log" "mailaddrCC@hogehoge.com" "mailaddrBCC@hogehoge.com"

このスクリプトで使っている関数は以下のサイトを参考にしました。感謝!
http://d.hatena.ne.jp/mobitan/20101014/1287089275

もうちょっと改造して、本文をファイルで渡すとかしたら、
改行の入ったメール内容にも対応出来そうだけど、
とりあえずは使えるかと。。。

※参考にした関数以外はソース改版は自由にどうぞ。

バッチファイルやコマンドプロンプトから添付ファイルをつけてメール送信

バッチファイルやコマンドプロンプトから添付ファイルをつけてメール送信