我们有一个备份文件的脚本。备份操作结束后,我们希望将报告作为电子邮件通知发送到我们的一些电子邮件地址。
怎么可能做到这一点?
我们有一个备份文件的脚本。备份操作结束后,我们希望将报告作为电子邮件通知发送到我们的一些电子邮件地址。
怎么可能做到这一点?
布拉特:
blat -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject" -body "body"
您还可以使用 Power Shell 脚本:
$smtp = new-object Net.Mail.SmtpClient("mail.example.com")
if( $Env:SmtpUseCredentials -eq "true" ) {
$credentials = new-object Net.NetworkCredential("username","password")
$smtp.Credentials = $credentials
}
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "script@mycompany.com"
$objMailMessage.To.Add("you@yourcompany.com")
$objMailMessage.Subject = "eMail subject Notification"
$objMailMessage.Body = "Hello world!"
$smtp.send($objMailMessage)
PowerShell 带有一个内置命令。所以直接从.bat
文件运行:
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer server.address.name ^
-To someone@what.ever ^
-From noreply@possibly.fake ^
-Subject Testing ^
-Body 123
-ExecutionPolicy ByPass
仅当您尚未设置从 CMD 运行 PS 的权限时才需要NB
同样对于那些希望从 powershell 中调用它的人,在-Command
[inclusive] 之前删除所有内容,`
并将成为您的转义字符(不是^
)
邮件。只需安装 EXE 并运行如下一行:
bmail -s myMailServer -f Sender@foo.com -t receiver@foo.com -a "Production Release Performed"
我们一直在我们的环境中使用 blat 来执行此操作。我也使用它通过Stunnel连接到 Gmail 。这是发送文件的参数
blat -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject" -body "body" -attach c:\temp\file.txt
或者您可以将该文件作为正文放入
blat c:\temp\file.txt -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject"
有多种方法可以处理这个问题。
我的建议是使用功能强大的 Windows 免费软件控制台应用程序SendEmail。
sendEmail.exe -f sender.from@mail.com -o message-file=body.txt -u subject message -t to.email.address@mail.com -a attachment.zip -s smtp.gmail.com:446 -xu gmail.login -xp gmail.password