使用send-mailmessage命令发送邮件时的电子邮件凭据

4
我在许多论坛中搜索过,它们确实解释了如何做到这一点,但是由于我对powershell非常陌生,技术语言对我来说太难理解了。我希望能够逐步地(小步骤)进行解释。我想在批处理文件(.bat)中运行这个powershell命令。我有一个批处理文件,每周使用robocopy备份,并希望批处理文件在备份完成后向我发送电子邮件。唯一的问题是凭据,我会弹出一个要求用户名和密码的弹出框。当我输入此信息时,电子邮件将成功发送。以下是我的代码:

使用:powershell V2.0 Windows 7 Ultimate

Powershell -command send-mailmessage -to emailadress@provider.com -from emailaddress@provider.com -smtp smtp.broadband.provider.com -usessl -subject 'backup complete' 
4个回答

6
$from = "example@mail.com" 
$to = "example@mail.com" 
$smtp = "smtpAddress.com" 
$sub = "hi" 
$body = "test mail"
$secpasswd = ConvertTo-SecureString "yourpassword" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential($from, $secpasswd)
Send-MailMessage -To $to -From $from -Subject $sub -Body $body -Credential $mycreds -SmtpServer $smtp -DeliveryNotificationOption Never -BodyAsHtml

2
您可以在同一命令中传递凭证对象-这将避免弹出窗口:
Powershell -Command 'Send-MailMessage -to "emailadress@provider.com" -from "emailaddress@provider.com" -smtp "smtp.broadband.provider.com" -usessl -subject "backup complete" -credential (new-object System.Net.NetworkCredential("user","pass","domain"))'

我建议将用户名/密码存储在更安全的格式中,但这样做应该可以解决你的问题。


0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接