通过电子邮件从受监视文件夹发送新文件的脚本

时间:2014-03-10 07:30:49

标签: email powershell vbscript attachment

我想知道是否有人可以指出如何通过电子邮件(Exchange)自动发送位于受监控文件夹中的新添加文件,最好不要在服务器上安装Outlook。

我每天都会使用脚本通过电子邮件通知我所监视文件夹中的更改,但这些文件实际上并未将这些文件附加到电子邮件中,最多只列出新文件名等。

我们的软件可以在大致相同的时间输出3个小文本文件,但是有人必须每天手动将这些文件通过电子邮件发送到同一个外部地址。我想自动化这个过程。

我正在运行Server 2008 R2,并不介意PowerShell和VB等。感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

这应该让你去。

$watchPath = "c:\folder\"

$sendToList = @("toUser@domain.com")
$sendFrom = "fromUser@domain.com"
$emailSubject = "File '{0}' changed"
$smtpHost = "smtp.server"

$watcher = New-Object System.IO.FileSystemWatcher 
$watcher.Path = $watchPath
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true

$changed = Register-ObjectEvent $watcher "Changed" -Action { 

    Send-MailMessage -SmtpServer $smtpHost -To $sendToList -from $sendFrom -Subject ($emailSubject -f $eventArgs.Name) -Attachments $eventArgs.FullPath

}