以前にお仕事でvbsを使って、メールを送信しました。
バッチファイルなどで監視しておいて、なにかイベントがあったときにメールで知らせるため。
わりと汎用的に使えるTipsだと思います。
open
手順メモ
- 送信元のGmailアカウントを用意する。既存のものでもOK
- そのGoogleアカウントは2段階認証にしておく。
- Googleアカウント設定のセキュリティからアプリパスワードの設定をする。
特に決まりがなければ、その他で適当な名前をつけるといいかも。 - vbsを書く。
備忘録
- 複数人に送信する場合は、;で追加できる。
- どうやらGoogleアカウントのパスワードを更新すると、アプリパスワードもリセットされるっぽい。
のでので、再度アプリパスワードを生成して、スクリプトに当て直す必要がありそう。
この辺なんかうまいことできないかな。。
実際のスクリプト
'****************************************************************
' mail sender
'****************************************************************
Set Cdo = WScript.CreateObject("CDO.Message")
Cdo.From = "表示名<送信元メールアドレス>; "
Cdo.To = "ATESAKI1<MAIL_ADDRESS1>; ATESAKI2<MAIL_ADDRESS2>;"
' Cdo.To = "ATESAKI1<MAIL_ADDRESS1>"
' Cdo.Bcc = "ATESAKI1<MAIL_ADDRESS1>"
Cdo.Subject = "件名"
Cdo.Textbody = "本文〜〜のあとに改行(vbCrLf)と現在時間(NOW)" & vbCrLf & Now
Cdo.BodyPart.Charset = "utf-8"
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = true
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "送信元メールアドレス"
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "16文字のパスワード"
Cdo.Configuration.Fields.Update
Cdo.Send
Wscript.Quit(Err.Number)
参考にしたリンク
https://blog.saboh.net/smtpgmailcom/
http://serialty.blog117.fc2.com/blog-entry-10.html