FileWatcher使用Net.Mail.MailMessage

时间:2018-10-10 20:28:05

标签: powershell system.net.mail file-watcher

我正在使用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)
 }

0 个答案:

没有答案