【Windows】SMAILでメールしてみる

パソコン

○時になったら自動でメール送信したい。

今回はそんな仕組みをバッチファイルで記述しましたのでご紹介です。

概要

マジックペンでフロー図を描いている写真

メールには「SMAIL」というツールを使っています。

SMAIL|フリーソフトウェア (picolix.jp)

バッチファイルだけではメール送信することはできませんが、SMAILを起動してあげることでバッチファイルからメール送信の仕組みを実現することができます。

一度作ってしまえば、いろいろな場面で流用できるため、かなり重宝しています。

SMAIL での自動メールに必要なファイル
▲ SMAIL での自動メールに必要なファイル

SMAILを使う準備

SMAILを使うためには SMAIL.ini(メール送信のための情報が記録されている)の作成が必要です。

SMAIL.ini は以下の手順で作成します。

  1. SMAIL.exe を起動
  2. SMIAL初期設定 で SMTPサーバ の欄を入力
  3. 保存

順を追って簡単にご紹介します。

SMAIL.exe を起動

ダウンロードした SMAIL.exe をダブルクリックします。

smail.exeのアイコン

SMAIL初期設定 で SMTPサーバ の欄を入力

以下は、Yahooメールの場合の設定の例です。

とりあえず試してみたい方は無料ですのでYahooでメールアカウントを取得してみてください。

自分のアカウントのユーザーIDとパスワードを設定すればメール送信できるはずです。

SMAIL初期設定画面

SMTPサーバの値はメールのサービスによって違うので注意

保存

保存ボタンをクリックすると、保存先に SMAIL.ini ができているはずです。

バッチファイルの内容

二進数(0と1)の並び

それではバッチファイルの内容について、備忘録を以下に記載しておきたいと思います。

下準備

まずは下準備をします。

echo off でコマンドを復唱させないようにし、clsで画面の表示をきれいにしておきます。

  • echo off
  • cls
  • CD C:\WORK

C:\WORKはバッチファイルやSMAIL.exeが置いてあるフォルダです。

メールを送信

メールを送信する命令が以下の「SMAIL」で始まる1文です。

  • smail -hsmtp.mail.yahoo.co.jp -f"send-address@yahoo.co.jp" -i -s"メールタイトル" -F"メール本文.txt" -a"添付ファイル.log" receive-address@yahoo.co.jp -t
  • IF NOT %ERRORLEVEL% == 0 goto ERR
  • goto OK

[ SMAIL ]

 SMAIL.exeを起動するという意味です。

 直前にCD C:\WORKとディレクトリを移動していますので、「smail」と記述すると「C:\WORK\smail.exe」が実行されることなります。

[ -hsmtp.mail.yahoo.co.jp ]

 -h はホスト名(メールを送信するメールサーバ名又はIPアドレス)を指定します。

 今回の例ではYahooが公開している送信メール(SMTP)サーバーを指定しています。

[ -f”send-address@yahoo.co.jp” ]

 送信元となるメールアドレス(アカウント)をダブルクォーテーション内に記述します。

[ -i ]

 インフォメーション表示モードです。

 メール送信時の情報がコマンド上に表示されますので、特に不要な理由がなければ指定しましょう。

[ -s”メールタイトル” ]

 メールタイトルです。

[ -F”メール本文.txt” ]

 メール本文です。

 コマンドに長々と本文を書かずに済むよう、C:\WORK にテキストファイルの本文を配置します

[ -a”添付ファイル.log” ]

 添付ファイルがある場合、指定することができます。

[ receive-address@yahoo.co.jp ]

 宛先のメールアドレスです。

[ -t ]

 NTタイムゾーン調整オプションです。

 国内なら不要な気もしますが、あっても問題ないため、いつも指定していました。

インフォメーション表示モードでメール送信した時のイメージ
▲ インフォメーション表示モードでメール送信した場合のイメージ

SMAILコマンド後にERRORLEVELを判定して、メール送信エラーに備えています。

日々、運用していくとメール送信が失敗するケースも発生します。

そんな事態にも対処できるような工夫もあると安心できます。

後処理

もし、SMAILでなんらかのエラーがあった場合、気づけるようにしておきます

  • :ERR
  • echo ■■エラーが発生したため送信できませんでした■■
  • goto END

メッセージ表示だけでなく、エラーログを保存しておくのもいいね

  • :OK
  • echo 正常に送信されました
  • goto END
  •  
  • :END
  • Timeout 20
  • exit

まとめ

ノートパソコンとコーヒー

今回は単純にメールを送信するバッチファイルを記述しました。

基本の仕組みはそのままに、いろいろな場面に応じて少し記述を変更すれことで、対応にも幅がでてきそうですね。

ぜひ一度お試しあれ。

コメント

タイトルとURLをコピーしました