可以用下面的代码 来执行 一段bat 在windws 下发送邮件:

powershell.exe -executionpolicy remotesigned -file C:\AutoSendingMailScript\sendemail2TACSuLan.ps1

那么powershell的脚本是:

$EmailFrom = "abc@sulannetXX.com" $EmailTo = "abc@sulannetXX.com" $Subject = "*的每天备份计划有失败的地方,请注意查看" $Body = "备份失败了,通过task schdule失败了,注意查看,通过RDP 查看 172.16.0.7 服务器上task schedule的内容!! 如果有问题的话请咨询 !!" $SMTPServer = "smtp.mxhichina.com" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("abc@sulannet.com", "XXXXXX"); $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

P.S. 测试过很多的邮箱,其中Gmail也是okay的,但是gmal需要验证发送的客户端;所以最后使用了阿里云提供的邮箱。

Gmail的邮箱的方式是:

$EmailFrom = "2323XXX@gmail.com" $EmailTo = "2323XXX@126.com" $Subject = "Subject" $Body = "Body" $SMTPServer = "smtp.gmail.com" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("2323XXX@gmail.com", "PasswordXXX"); $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

最大的用处是: 可以通过计划任务在某一个时间日志触发后自动调用此脚本发送邮件出来 非常的有效