【VBScript】CDOでGmailからメール送信する【2021年版】

プログラミング

タスクでメールを送信するプログラムが作りたかったのですが、

今回はシンプルにVBScriptを使ってやる方法を考えました。

色々と試していたのですが、2021年の2月にGoogleが行ったアップデートによって、

他サイトに記載されていた方法だとエラーで送れなかったため備忘録としてまとめます。

結論:Gmail側の設定を行うことでできました!

①2段階認証の設定
②アプリパスワードを設定

スポンサーリンク

準備①:2段階認証の設定

まずはGoogleのセキュリティのページを開きます。

Google Account

「セキュリティ」⇒「Googleへのログイン」⇒「2段階認証プロセス」を開きます。

そこでこのアカウントに対するログインを、2段階認証(携帯番号での認証)の設定をします。

スポンサーリンク

準備②:「アプリパスワード」を設定する

本来のパスワードではなく、専用のパスワードを設定することができます。

こちらを使い、今回のメールスクリプト用のパスワードを設定します。

タイムラインのタイトル
  • アプリパスワードを開く

  • アプリ名を入力

    目的を記載します。ただの名前なので、その他⇒「メール用」とかで。

  • パスワードが発行される

    ここで発行されたパスワードをメモしておきます。

スポンサーリンク

スクリプト作成

下記のようにスクリプトを作成します。

VBscriptですが、おそらくVBAでも使えると思います。

有名なスクリプトなので、よく使われていますが、

唯一異なるのはパスワードを上で作成したアプリパスワードを使用する点です。

Option Explicit

sendMail()

'
' Send mail function
'
Sub sendMail()
	Dim objMail
	Set objMail = CreateObject("CDO.Message")

	objMail.From = "xxx@gmail.com"
	objMail.To = "xxx@xxx.com"
	objMail.Subject = "E-MAIL TITLE"
	objMail.TextBody = "E-MAIL TEXT"
	objMail.TextBodyPart.Charset = "ISO-2022-JP"

	Dim strConfigurationField
	strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
	With objMail.Configuration.Fields
	.Item(strConfigurationField & "sendusing") = 2
	.Item(strConfigurationField & "smtpserver") = "smtp.gmail.com"
	.Item(strConfigurationField & "smtpserverport") = 465
	.Item(strConfigurationField & "smtpauthenticate") = 1
	.Item(strConfigurationField & "sendusername") = "xxx@gmail.com"    '①各自のGmailID
	.Item(strConfigurationField & "sendpassword") = "(アプリパスワード)" '②で作成したパスワード
	.Item(strConfigurationField & "smtpconnectiontimeout") = 60
	.Item(strConfigurationField & "smtpusessl") = True
	.Update
	end With

	objMail.Send

	Set objMail = Nothing
End Sub

これをメモ帳に貼り付け、拡張子を「.vbs」で保存するとファイルが作成されます。

できたファイルをダブルクリックで開くとメールが送信されます。

アプリパスワードを使用するという点が今回から追加された方法となりますので、

是非活用してみてください。

プログラミング
スポンサーリンク
ようをフォローする
スポンサーリンク
DynaKnowledge

コメント

  1. ネズミ より:

    できました!
    ずっと探してました!
    ありがとうございます!!

    • よう よう より:

      ネズミさん
      コメントありがとうございます。
      私も同じことで悩んでいたので無事に解決できてよかったです!

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