使用PowerShell V4通过Gmail发送邮件

时间:2016-01-24 06:31:35

标签: security powershell gmail powershell-v4.0 powershell-ise

我一直在使用此PowerShell脚本在打开时向我发送电子邮件。

$EmailFrom = "notifications@somedomain.com"
$EmailTo = "anything@gmail.com" 
$Subject = "sample subject" 
$Body = "sample body" 
$SMTPServer = "smtp.gmail.com" 
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("YOURUSERNAME", "YOURPASSWORD"); 
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

我将$ EmailTo更改为我的电子邮件地址,将YOURUSERNAME / YOURPASSWORD更改为我的正确登录信息。

我知道这是在上个月有效的事实。我最近更改了我的Gmail密码,显然这个脚本停止了工作。但是,我将YOURPASSWORD更改为正确的新的,现在由于某种原因我在打开时出错:

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
Exception calling "Send" with "4" argument(s): "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:9 char:1
+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SmtpException

我使用的是Windows 7 Ultimate 64bit,我相信我使用的是PowerShell V2,但由于我认为这可能是问题,所以今天更新到了V4。

我还在Gmail设置中启用了不安全的应用,因为有人说这可能是问题所在。它不是,直到今天,我仍然得到错误。

您知道是否仍然可以通过PowerShell发送Gmails?或者我只是错过了什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但是Gmail向我发送了一封邮件,其中包含"不太安全的应用"的链接,我把它打开然后就可以了。此处的链接只是将用户名改为USERNAME。

https://accounts.google.com/AccountChooser?Email=USERNAME@gmail.com&continue=https://www.google.com/settings/security/lesssecureapps?rfn%3D27%26rfnc%3D1%26eid%3D3301110864727181130%26et%3D0%26asae%3D2