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

Posted

技术标签:

【中文标题】使用 send-mailmessage 命令时的电子邮件凭据【英文标题】:Email credentials when using send-mailmessage command 【发布时间】:2014-05-12 05:11:13 【问题描述】:

我搜索了很多论坛,他们确实解释了如何做到这一点,但是技术语言太难理解了,因为我对 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' 

【问题讨论】:

【参考方案1】:
$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"))'

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

【讨论】:

【参考方案3】:

我不确定您是否可以使用 send-mailmessage 命令进行 SMTP 身份验证。但是,您可以通过需要使用 Net.Mail.SmtpClient 对象和 System.Net.Mail.MailMessage 对象进行身份验证的 SMTP 服务器发送消息。请参阅 How to pass credentials to the Send-MailMessage command for sending emails 了解一个很好的例子。

【讨论】:

【参考方案4】:

看send-mailmessage helppage的最后一个例子

你会看到你可以通过参数-credential domain01\admin01 传递凭证

如果您不想要任何提示,请看这里Using PowerShell credentials without being prompted for a password(将您的信用保存在文本文件中)

【讨论】:

以上是关于使用 send-mailmessage 命令时的电子邮件凭据的主要内容,如果未能解决你的问题,请参考以下文章

Powershell管理系列(三十四)PowerShell操作之Send-MailMessage

使用 PowerShell V2 的 Send-MailMessage 通过 Gmail 发送邮件

唐承乾的电赛小站

西瓜的电赛小站

肌电信号脉搏信号分析(去噪+特征提取)matlab源码含GUI

肌电信号脉搏信号分析(去噪+特征提取)matlab 源码含GUI