OPTION EXPLICIT DIM strMailServer, strMailTo, strMailFrom, strMailSubject, strMailBody DIM strEventSinkDBConn, objEventSinkDB, intCheckInterval DIM rsCheck4Errors, rsCheckIgnoreList, strError, strCheck, strFlag, intErrorNum, intIgnoreNum intCheckInterval=1 'Interval is in minutes, set it to same as schedule task interval strMailServer="smtp.*.com" strMailTo= "user@somplace.com" strMailFrom="user@somplace.com" strMailSubject="Test of Alert on Error" 'This is just here for testing strMailBody="This is a test message body." 'This is just here for testing strEventSinkDBConn = "DSN=EventSink" 'Set the connection string to the name of the system DSN Set objEventSinkDB = CreateObject("ADODB.Connection") 'Create an ADODB connection object objEventSinkDB.commandtimeout=180 objEventSinkDB.Open strEventSinkDBConn 'Open that connection SET rsCheck4Errors = objEventSinkDB.Execute("SELECT * FROM tblInBound WHERE EventDateTime >= DATEADD(n,"& intCheckInterval*-1 &",GETDATE()) AND Type='Error';") SET rsCheckIgnoreList = objEventSinkDB.Execute("SELECT * FROM tblIgnoreList WHERE Type LIKE '%Error%' order by id asc;") intErrorNum=0 intIgnoreNum=0 While NOT rsCheck4Errors.EOF rsCheckIgnoreList.MoveFirst strError=TRIM(rsCheck4Errors("ComputerName")) strFlag="Send" intIgnoreNum=0 While NOT rsCheckIgnoreList.EOF IF funCleanField(rsCheck4Errors("ComputerName")&" ") = funCleanField(rsCheckIgnoreList("ComputerName")&" ")_ AND funCleanField(rsCheck4Errors("Category")&" ") = funCleanField(rsCheckIgnoreList("Category")&" ")_ AND funCleanField(rsCheck4Errors("User")&" ") = funCleanField(rsCheckIgnoreList("User")&" ")_ AND CLNG(rsCheck4Errors("EventCode")) = CLNG(rsCheckIgnoreList("EventCode"))_ THEN strFlag="Ignore" END IF intIgnoreNum=intIgnoreNum + 1 rsCheckIgnoreList.MoveNext WEND IF strFlag="Send" THEN strMailSubject="Error: " &rsCheck4Errors("ComputerName")& " " & rsCheck4Errors("SourceName") strMailBody="ID: "&rsCheck4Errors("id") &VbCrLf& _ "ID: "&"EventDateTime: "&rsCheck4Errors("EventDateTime") &VbCrLf&_ "ComputerName: "&rsCheck4Errors("ComputerName") &VbCrLf& _ "LogFile: "&rsCheck4Errors("LogFile") & VbCrLf&_ "RecordNumber: "&rsCheck4Errors("RecordNumber") &VbCrLf& _ "SourceName: "&rsCheck4Errors("SourceName") &VbCrLf&_ "EventIdentifier: "&rsCheck4Errors("EventIdentifier") &VbCrLf& _ "EventCode: "&rsCheck4Errors("EventCode") &VbCrLf&_ "Type: "&rsCheck4Errors("Type") &VbCrLf& _ "Category: "&rsCheck4Errors("Category") &VbCrLf&_ "CategoryString: "&rsCheck4Errors("CategoryString") &VbCrLf& _ "TimeGenerated: "&rsCheck4Errors("TimeGenerated") &VbCrLf&_ "TimeWritten: "&rsCheck4Errors("TimeWritten") &VbCrLf& _ "User: "&rsCheck4Errors("User") &VbCrLf&_ "Message: "&rsCheck4Errors("Message") &VbCrLf funSendMail strMailServer, strMailTo, strMailFrom, strMailSubject, strMailBody ELSE strFlag="Send" END IF intErrorNum=intErrorNum + 1 rsCheck4Errors.MoveNext WEND '--------------------------------------------------------------------------------------- FUNCTION funSendMail(strMailServer, strMailTo, strMailFrom, strMailSubject, strMailBody) DIM objMail SET objMail = WScript.CreateObject("CDO.Message") objMail.From = strMailFrom objMail.To = strMailTo objMail.Subject = strMailSubject objMail.TextBody = strMailBody objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strMailServer objMail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMail.Configuration.Fields.Update objMail.Send SET objMail=Nothing END FUNCTION '--------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------- FUNCTION funCleanField(strToClean) strToClean=REPLACE(strToClean, CHR(10),CHR(32)) strToClean=REPLACE(strToClean, CHR(13),CHR(32)) strToClean=TRIM(strToClean) funCleanField=strToClean END FUNCTION '---------------------------------------------------------------------------------------