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側で信頼のないツールからのアクセスをブロックしているっぽい。

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


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