use*_*628 48 windows command-line email-client batch-file
我们有一个备份文件的脚本.备份操作结束后,我们希望将报告作为电子邮件通知发送到我们的某些电子邮件地址.
怎么可以这样做?
Col*_*ard 37
布拉特:
blat -to user@example.com -server smtp.example.com -f batch_script@example.com -subject "subject" -body "body"
Run Code Online (Sandbox Code Playgroud)
Phi*_*sse 20
您还可以使用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)
Run Code Online (Sandbox Code Playgroud)
Has*_*own 11
PowerShell附带内置命令.所以直接从.bat文件运行:
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer server.address.name ^
-To someone@what.ever ^
-From noreply@possibly.fake ^
-Subject Testing ^
-Body 123
Run Code Online (Sandbox Code Playgroud)
-ExecutionPolicy ByPass仅当您尚未设置从CMD运行PS的权限时才需要NB
对于那些希望在PowerShell中调用它的人,在-Command[包含] 之前删除所有内容,并且`将成为你的转义字符(不是^)
bmail.只需安装EXE并运行如下所示的行:
bmail -s myMailServer -f Sender@foo.com -t receiver@foo.com -a "Production Release Performed"
Run Code Online (Sandbox Code Playgroud)
最简单的方法是使用其他人提到的第三方应用程序
如果这不是一个选项,我使用vbscript和CDO编写了一个简单的sendmail实用程序,我从批处理脚本调用它
请参阅http://www.paulsadowski.com/WSH/cdo.htm中的示例