Option Explicit '************************************************* '* ↓↓ メール設定 ↓↓ * '************************************************* Const sTo = "***@yahoo.co.jp,***@gmail.com" 'メール送信先(カンマ区切り) Const sUser = "***@gmail.com" 'SMTPサーバログインユーザー名 Const sPass = "***" 'SMTPサーバログインパスワード Const sSubject = "【出勤確認自動メール】***店" '件名 Const sBody = "出勤確認が取れませんでした。" '本文 '************************************************* '* ↑↑ メール設定 ↑↑ * '************************************************* '=====変数宣言==================================== Dim oWsh,oFso,oPrm,oMsg Dim sSfn,sDir,sChk,sUrl '=====オブジェクト設定============================ Set oWsh = CreateObject("WScript.Shell") Set oFso = CreateObject("Scripting.FileSystemObject") Set oPrm = WScript.Arguments Set oMsg = CreateObject("CDO.Message") '=====変数設定==================================== sSfn = WScript.ScriptFullName sDir = oFso.getParentFolderName(sSfn) & "\" sChk = sDir & "chk.txt" sUrl = "http://schemas.microsoft.com/cdo/configuration/" '===引数により処理内容分岐======================== '引数が1つでm、d、cのどれかの場合のみ処理実行 If oPrm.Count = 1 Then Select Case oPrm(0) Case "m" Call MekeFile Case "d" Call DelFile Case "c" Call Check Case Else LogEventWarn End Select Else LogEventWarn End If '=====引数mの処理================================= '作業フォルダに判定用ファイルを作成する(引数m) Sub MekeFile() On Error Resume Next oFso.CreateTextFile(sChk) 'ファイル作成 'イベントログに結果書き込み Call LogEvent(Err.Number,Err.Description) On Error Goto 0 End Sub '=====引数dの処理==================================== '作業フォルダに判定用ファイルがあれば削除する(引数d) Sub DelFile() On Error Resume Next If oFso.FileExists(sChk) Then oFso.DeleteFile(sChk) Call LogEvent(Err.Number,Err.Description) On Error Goto 0 End Sub '=====引数cの処理==================================== '作業フォルダに判定用ファイルが無ければメールを送信する(引数c) Sub Check() If Not oFso.FileExists(sChk) Then oMsg.From = sUser oMsg.To = sTo oMsg.Subject = sSubject oMsg.TextBody = sBody oMsg.TextBodyPart.Charset = "ISO-2022-JP" 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") = sUser .Item(sUrl & "sendpassword") = sPass .Update End With End If On Error Resume Next oMsg.Send Call LogEvent(Err.Number,Err.Description) On Error Goto 0 End Sub '=====イベントログへ処理結果出力================== Sub LogEventWarn() oWsh.LogEvent 2, "引数が正しく指定されなかった為、処理を中止しました。" & VbCrLf & _ "m、d、cのいずれか1つを指定して下さい。" & VbCrLf & VbCrLf &_ sSfn End Sub Sub LogEvent(iErrNo,sErrMsg) If iErrNo <> 0 Then oWsh.LogEvent 1, "予期しないエラーが発生しました。" & vbCrLf & vbCrLf & _ sSfn & " " & oPrm(0) & vbCrLf & _ "ID:" & iErrNo & vbCrLf & _ "内容:" & sErrMsg Else oWsh.LogEvent 0, "正常終了しました。" & vbCrLf & _ sSfn & " " & oPrm(0) End If End Sub '=====終了処理================== Set oWsh = Nothing Set oFso = Nothing Set oPrm = Nothing Set oMsg = Nothing WScript.Quit