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の[アカウント設定]で [ログインとセキュリティ]-[接続済みのアプリとサイト]の≪安全性の低いアプリの許可≫を【無効】から【有効】にすると行けた。
セキュリティ的には良くないと思われるので、オススメはしません。