目的
バッチコマンドだけでメールを自動送信させることは不可能
バッチコマンドだけで、メールを自動送信させることは不可能です。ですので、何かしらと組み合わせて行う必要があります。
ここでは、私が一番簡単であると思う「smail」というフリーソフトを使ってバッチファイルからメールを自動送信する方法を紹介します。
ただし、設定方法だけを解説して、専門用語の意味などには詳しく触れません。「とりあえず、できればいいだよ」という方向けです。
フリーソフト「smail」を設定する
まずは、以下のサイトからsmailをダウンロードしてきましょう。
https://www.picolix.jp/page3.html
赤矢印からzipファイルをダウンロードして下さい。
【2017年2月現在のダウンロード場所】
すると、「smail-v4.191」フォルダがダウンロードされます(もちろんバージョンは違っているかもしれません)。解凍したフォルダを、適当な場所に置いて下さい。
この中に入っている「smail.exe」をダブルクリックして実行します。以下のウィンドウが現れます。
この中の「■SMTPサーバ」の項目のみを設定変更します。変更内容は以下の通りです。
SMTPポート番号: 25(デフォルト値のまま)
SMTPポート認証: AUTH PLAIN
SMTPユーザID: [自分のメールアドレス](例:xxxxx@yahoo.co.jp, xxxxx@gmail.com)
SMTPパスワード: [自分のメールアドレスのパスワード]
SMTP/SSl暗号化: 「使用する」にチェック
ポート番号: 465(デフォルト値のまま)
SSLv2/v3を選択
以下、設定例です。
入力が終わったら「保存」ボタンを押します。
以下のような確認メッセージが出ますので、
「はい」を選択します。暗号化についても「OK」です。
では、「終了」ボタンを押してウィンドウを閉じましょう。これで、「smail」の設定は終了です。
バッチファイルにメール送信コマンドを記述する
「smail.exe」があるファイル内にメール送信バッチファイル「send_mail.bat」を作ります。
このバッチファイルの中に、以下のメール送信コマンドのひな型通りに記述していきましょう。
1 |
smail -h[送信メールサーバー] -f[送信元メールアドレス] -s"[件名]" -F[本文を書いたファイル] -a[添付ファイル] [送信先メールアドレス] -d -i |
[送信メールサーバー]
【yahoo mailの場合】smtp.mail.yahoo.co.jp
【gmailの場合】smtp.gmail.com (※動作確認してないので注意)
[送信元メールアドレス]
送信元のメールアドレスを指定します。
このアドレスからメールが送られたことになります。
[件名]
件名を記入します。「”」で囲むことに注意して下さい。
[本文を書いたファイル]
メール内容を書いたファイルを指定します。バッチファイルと同じフォルダに置いて下さい。
[添付ファイル]
添付したいファイルを指定します。あまりにサイズが大きいと送れません。
[送信先メールアドレス]
送り先のメールアドレスです。
「-d」はコマンドプロンプトに情報を表示させるオプション、「-i」オプションは情報を詳しく出力するためのものです。
以下、設定例を示します。
1 |
smail -hsmtp.mail.yahoo.co.jp -fyour_mail_address@yahoo.co.jp -s"送信テスト" -Fcontent.txt -aAttachment.txt send_to_address@yahoo.co.jp -d -i |
上の例では、yahooメールから送る場合です。なので、「送信メールサーバー -h」にはyahoo mailのものを使用します。
「-f」オプションに続けて送信元アドレスを書き、「-s」オプションに件名(ここでは、「送信テスト」)を指定しています。
「-F」オプションには本文を書いた「content.txt」ファイルを指定しています。「content.txt」ファイルは、以下のような内容にしました。
「-a」オプションには添付ファイル「Attachment.txt」を指定し、この添付ファイルはバッチファイルと同じフォルダに置きます。
あとは、送信先のメールアドレス(send_to_address@yahoo.co.jp)を指定します。
このバッチを実行すれば、メールが送信されます。
送信時の詳しい情報を見るときは、バッチファイルをダブルクリックするのではなく、コマンドプロンプトから実行します。エラー時などの確認の手助けとなるでしょう。
以下、参考までに実行時のコマンドプロンプト画面を示します。
何か色々なことをやっているなーという感じです。