Powershell 3.0:无法使用send-mailmessage cmdlet向自己发送电子邮件

Powershell 3.0:无法使用send-mailmessage cmdlet向自己发送电子邮件,powershell,powershell-3.0,Powershell,Powershell 3.0,我已经试着调试这几天了,我已经不知所措了。代码如下: $gmailPwd = 'password' $gmailUser = 'my.email@gmail.com' $cred = New-Object System.Management.Automation.PSCredential ($gmailUser,$gmailPwd) $param = @{ SmtpServer = 'smtp.gmail.com' Port = 587 UseSsl = $true Credential = $

我已经试着调试这几天了,我已经不知所措了。代码如下:

$gmailPwd = 'password'
$gmailUser = 'my.email@gmail.com'
$cred = New-Object System.Management.Automation.PSCredential ($gmailUser,$gmailPwd)
$param = @{
SmtpServer = 'smtp.gmail.com'
Port = 587
UseSsl = $true
Credential = $cred
From = $gmailUser
To = $gmailUser
Subject = 'Test'
Body = "Test"
}
Send-MailMessage @param  
我一直收到以下错误消息:

New-Object : Cannot convert argument "1", with value: "Password1234", for "PSCredential" to type "System.Security.SecureString": "Cannot convert the "Password1234" value of type "System.String" to type 
"System.Security.SecureString"."
At line:4 char:9
+ $cred = New-Object System.Management.Automation.PSCredential ($gmailUser,$gmailP ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

Send-MailMessage : The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
At line:15 char:1
+ Send-MailMessage @param
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

我只是不太确定错误消息是什么意思。而且,作为记录,没有密码1234不是真正的密码,但它与真实的东西类似

A
[PSCredential]
的构造函数不接受纯文本密码。它必须是一个安全字符串

发件人:


好的,酷。这样就解决了密码问题,但现在我仍在处理第二个错误。发送邮件:
SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证。在第14行中了解更多信息:字符:1+发送邮件@param+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:无效操作:(System.Net.Mail.SmtpClient:SmtpClient)[发送邮件]、SmtpException+FullyQualifiederRoid:SM,Microsoft.PowerShell.Commands.SendMailMessage
@GalenH我看不出您现有的代码有任何问题,因此我不确定它失败的原因,除了您的电子邮件地址或密码可能有误之外。在用户名字段中使用任何点时,请尝试从电子邮件地址中删除它们。点在gmail地址中是可选的,当使用它作为用户名时,它们可能应该被忽略。只是猜测我还没有测试过。我对电子邮件地址和密码很有信心。在调查了5.5.1错误代码之后,它看起来像是服务器端的身份验证问题。我已经授权了脚本访问权限,也授权了我正在使用的计算机,但这并没有产生任何有意义的结果。我也有点被难住了。编辑:我应该说,我授权它在相关的谷歌帐户。
$secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)