50

我们有一个备份文件的脚本。备份操作结束后,我们希望将报告作为电子邮件通知发送到我们的一些电子邮件地址。

怎么可能做到这一点?

4

6 回答 6

38

布拉特

blat -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject" -body "body"
于 2009-04-02T13:42:37.710 回答
21

您还可以使用 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)
于 2009-04-29T21:42:31.450 回答
16

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] 之前删除所有内容,`并将成为您的转义字符(不是^

于 2016-07-27T05:10:49.947 回答
8

邮件。只需安装 EXE 并运行如下一行:

bmail -s myMailServer -f Sender@foo.com -t receiver@foo.com -a "Production Release Performed"
于 2009-04-02T13:12:09.297 回答
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"
于 2009-04-02T15:10:36.360 回答
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
于 2014-07-03T02:46:55.117 回答