VBScriptでメール送信(Gmail)

VBScript

VBScriptからメール送信する方法調べたら、CDOとやらを使えばいいらしい。
ので、早速Gmailのsmtpサーバを使ってメールを送信してみるテスト。

試しにファイルがなければメール送信、あれば何もしないツールを作ってみた。

Check.vbsとMail.vbsを作成

Check.vbsでファイルの存在確認を行う。
ファイルが無ければMail.vbsが実行される。

Check.vbs

Option Explicit

Dim oWSH
Dim oFSO
Dim sFile

Set oWSH = WScript.CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

sFile = "C:\test\test.txt"

If Not oFSO.FileExists(sFile) Then
	oWSH.Run "C:\test\Mail.vbs ""***@yahoo.co.jp,***@gmail.com"""
End If

Set oFSO = Nothing
Set oWSH = Nothing

Mail.vbsでメールの送信を行う。
CDOを使いGmailのsmtpサーバに接続している。

Mail.vbs

Option Explicit

Dim oPrm
Dim oMsg
Dim sUrl

Set oPrm = WScript.Arguments
Set oMsg = CreateObject("CDO.Message")

oMsg.From = "***@gmail.com"
oMsg.To = oPrm(0)
oMsg.Subject = "てすてす"
oMsg.TextBody = "テストメールだよ、ファイルないよ!"

sUrl = "http://schemas.microsoft.com/cdo/configuration/"

With oMsg.Configuration.Fields
	.Item(sUrl & "sendusing") = 2
	.Item(sUrl & "smtpserver") = "smtp.gmail.com"
	.Item(sUrl & "smtpserverport") = 465
	.Item(sUrl & "smtpauthenticate") = 1
	.Item(sUrl & "smtpusessl") = true
	.Item(sUrl & "sendusername") = "***@gmail.com"
	.Item(sUrl & "sendpassword") = "***"
	.Update
end With

oMsg.Send

Set oMsg = Nothing
Set oPrm = Nothing

対象ファイルが無い場合にメールが送信されるので、Check.vbsをタスクスケジューラに登録して定期的に実行すれば簡易的なファイル監視が行えるはず。

メール送信エラーが出た時の対応

どうもgoogle側で信頼のないツールからのアクセスをブロックしているっぽい。

Windows Script Host

googleの[アカウント設定]で [ログインとセキュリティ]-[接続済みのアプリとサイト]の≪安全性の低いアプリの許可≫を【無効】から【有効】にすると行けた。

ログインとセキュリティ

ログインとセキュリティ

セキュリティ的には良くないと思われるので、オススメはしません。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする