我们有一个备份文件的脚本。备份操作结束后,我们希望将报告作为电子邮件通知发送到我们的某些电子邮件地址。
怎么可以这样做?
答案 0 :(得分:36)
Blat:
blat -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject" -body "body"
答案 1 :(得分:20)
您还可以使用Powershell脚本:
$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)
答案 2 :(得分:11)
PowerShell comes with a built in command for it。所以直接从.bat
文件运行:
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer server.address.name ^
-To someone@what.ever ^
-From noreply@possibly.fake ^
-Subject Testing ^
-Body 123
NB -ExecutionPolicy ByPass
仅在您尚未设置从CMD运行PS的权限时才需要
对于那些希望在powershell中调用它的人,请放弃-Command
[包含]之前的所有内容,`
将是您的转义字符(不是^
)子>
答案 3 :(得分:8)
bmail。只需安装EXE并运行如下所示的行:
bmail -s myMailServer -f Sender@foo.com -t receiver@foo.com -a "Production Release Performed"
答案 4 :(得分:5)
最简单的方法是使用其他人提到的第三方应用程序
如果那不是一个选项我用vbscript&编写了一个简单的sendmail实用程序。我从批处理脚本调用的CDO
答案 5 :(得分:3)
我们使用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"
答案 6 :(得分:3)
您还可以使用 sendmail 。我在这个subversion挂钩中使用它来发送电子邮件通知:post-commit hook
答案 7 :(得分:1)
有多种方法可以解决这个问题。
我的建议是使用功能强大的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