vbsでGmailを送信する

以前にお仕事でvbsを使って、メールを送信しました。
バッチファイルなどで監視しておいて、なにかイベントがあったときにメールで知らせるため。

わりと汎用的に使えるTipsだと思います。

open

手順メモ

  1. 送信元のGmailアカウントを用意する。既存のものでもOK
  2. そのGoogleアカウントは2段階認証にしておく。
  3. Googleアカウント設定のセキュリティからアプリパスワードの設定をする。
    特に決まりがなければ、その他で適当な名前をつけるといいかも。
  4. 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


コメントを残す

メールアドレスが公開されることはありません。