我正在使用FileWatcher脚本,就监视而言,一切似乎都可以正常工作。问题在于,当文件更改时,它会设置为向我发送电子邮件。它可以通过电子邮件发送出去,但总是发送2封电子邮件,或者如果我要发送给文本,则发送2条文本。这里发生了什么?这是我的代码:
$fswAuctions = New-Object IO.FileSystemWatcher $auctions, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fswAuctions Changed -SourceIdentifier FilesChanged4 -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
$SMTPBody = "The file '$name' was $changeType at $timeStamp"
Send-ToEmail -email "myemail@whatever.com" -strBody $SMTPBody -strSubject "Auctions Module"
Write-Host "The file '$name' was $changeType at $timeStamp" -fore white
}
function Send-ToEmail([string]$email, [string]$strBody, [string]$strSubject){
$message = new-object Net.Mail.MailMessage
$message.From = "do_not_reply@site.com"
$message.To.Add($email)
$message.Subject = $strSubject
$message.Body = $strBody
$smtp = new-object Net.Mail.SmtpClient("127.0.0.1", "25")
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)
$smtp.send($message)
}