' ************************************************************************* ' Post.Officeのログファイルをメール本文として送信するサンプルVBScript ' Copyright 2004/05/06 by K.Yamachika (SOHO), kyama@mountain.jp ' ' 改訂履歴 ' 2004/05/06 Ver.1.0リリース ' ************************************************************************* ' ---------------------- 以下を環境に合わせて編集 ---------------------- Const LOGFOLDER = "C:\WINDOWS\system32\spool\Post.Office\log" Const MOVEFOLDER = "C:\WINDOWS\system32\spool\Post.Office\log\2004" Const MAILCMD = "C:\win32app\Post.Office\others\postmail.exe" Const MAILSUBJECT = "Post.Office Log - " Const SENDER = "kyama@mountain.jp" Const RECIPIENT = "kyama@mountain.jp" Const LOGFNAME1 = "post.office-" Const LOGFNAME2 = "Puf" Const LOGEXT = ".log" Const WORKFILE = "C:\TEMP\POlog.txt" Const WAIT = 5000 ' ---------------------- 以上を環境に合わせて編集 ---------------------- Const ForReading = 1 Const ForWriting = 2 Dim oFSO, oFolder, cFiles, oFile, oShell, oLogFile, oWorkFile, Ln Dim myDate, myLastDate, myYear, myMonth, myDay, myFile1, myFile2 Set oFSO = WScript.CreateObject("Scripting.FileSystemObject") Set oShell = WScript.CreateObject("WScript.Shell") ' 前日を計算する myDate = Date myLastDate = DateAdd("d", -1, myDate) myYear = Year(myLastDate) myMonth = Right("0" & Month(myLastDate), 2) myDay = Right("0" & Day(myLastDate), 2) ' 前日のログファイル名を作成する myFile1 = LOGFNAME1 & myMonth & myDay & LOGEXT myFile2 = LOGFNAME2 & myYear & myMonth & myDay & LOGEXT ' ログファイルをメールで送信し、指定フォルダに移動する Set oFolder = oFSO.GetFolder(LOGFOLDER) Set cFiles = oFolder.Files For Each oFile In cFiles If oFile.Name = myFile1 Or oFile.Name = myFile2 Then ' postmailコマンドのバグ対応のため、 ' 先頭に空白行を含んだワークファイルを作成する Set oWorkFile = oFSO.OpenTextFile(WORKFILE, ForWriting, True) Set oLogFile = oFSO.OpenTextFile(LOGFOLDER & "\" & oFile.Name, ForReading, False) ' ログファイルから1行ずつ読み込んでワークファイルに転記する oWorkFile.WriteLine "" Do While oLogFile.AtEndOfStream <> True Ln = oLogFile.ReadLine oWorkFile.WriteLine Ln Loop oLogFile.Close oWorkFile.Close ' ワークファイルを読み込んで送信する oShell.Run "CMD.EXE /C " & """" & MAILCMD & " -S " & """" & MAILSUBJECT & oFile.Name & """" & " -f " & SENDER & " " & RECIPIENT & " < " & WORKFILE & """" ' 送信完了待ち Wsh.Sleep WAIT ' 処理済みログファイルを指定フォルダに移動する oFile.Move MOVEFOLDER & "\" & oFile.Name End If Next Set oShell = Nothing Set oFSO = Nothing