使用SMTPServer和Powershell发送电子邮件,但密码参数是什么?

时间:2013-11-19 15:20:09

标签: powershell smtp powershell-v2.0 powershell-v3.0

我刚刚使用了与powershell发送邮件的美味功能。 我使用-credentials参数登录我的Windows帐户。现在我希望程序自动发送邮件而不输入密码。 有密码参数吗?还是不安全? 你们有办法把密码放在安全的文件中吗?

这就是我刚用过的东西:

Send-Mailmessage -to "$recipients" -from "$sender" -Subject "Deployment Announcer" -body "Testmail" -SMTPserver "xxx.xx.xxx.xx" -Credential "Administrator" 

2 个答案:

答案 0 :(得分:2)

this link所示,您可以使用您的帐户名和密码创建PSCredential对象,如下所示,然后将创建的对象用作-Credential之后的值

$secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)

如果您想先将密码存储到文件中,然后脚本会读取文件而不是提示您输入密码Using PowerShell credentials without being prompted for a password

,您会发现此链接很有用。

答案 1 :(得分:0)

credentials参数接受psCredential对象,该对象可以包含用户名(包括域)和密码(安全存储)。如果您想重复使用凭证,请尝试

$cred = Get-Credential
Send-Mailmessage -to "$recipients" -from "$sender" -Subject "Deployment Announcer" -body "Testmail" -SMTPserver "xxx.xx.xxx.xx" -Credential $cred

Get-Credential将提示您输入用户名和密码,无需以纯文本格式存储密码。