【问题标题】:Sending email via GMAIL using Powershell in VSTS在 VSTS 中使用 Powershell 通过 GMAIL 发送电子邮件
【发布时间】:2017-11-13 11:54:05
【问题描述】:

我想在 VSTS 发布结束时发送一封电子邮件,其中包含一些额外的数据。我正在使用 powershell 发布任务,并且正在使用 Gmail SMTP 服务器。 powershell脚本如下:

$b = Invoke-WebRequest "http://mywebsite" -usebasicparsing
$message = New-Object System.Net.Mail.MailMessage
$message.subject =  "Swagger"
$message.body = $b
$message.to.add("me@hotmail.com")
$message.from = "source@gmail.com"
$smtp = New-Object System.Net.Mail.SmtpClient("smtp.gmail.com", "587");
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, "apppassword");
$smtp.send($message)

由于我使用的是 2 因素身份验证,因此我在上面的代码中使用了应用程序密码。当我从本地机器运行它时,它工作正常。但是,作为发布过程的一部分,它给了我以下错误:

"SMTP 服务器需要安全连接,或者客户端没有 认证。服务器响应为:5.5.1 Authentication Required”

谁能指出我正确的方向?谢谢!

【问题讨论】:

  • $Username 是在哪里定义的?
  • 你,我的朋友,是一个救生员!我之前定义了 $UserName 但由于 VSTS powershell 任务仅允许内联脚本使用 250 个字符,因此我将其删除。谢谢!
  • 不是问题伙伴。享受编码。

标签: powershell email gmail azure-devops release-management


【解决方案1】:

你能不能试试这个:

$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "username@gmail.com"
$Password = "password"
$to = "username_to_send@gmail.com"
#$cc = "username@gmail.com"
$subject = "Email Subject"
$body = "Insert body text here"
#$attachment = "C:\attachedFile.txt"
$message = New-Object System.Net.Mail.MailMessage
$message.subject = $subject
$message.body = $body
$message.to.add($to)
#$message.cc.add($cc)
$message.from = $username
#$message.attachments.add($attachment)
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)
write-host "Mail Sent successfully using GMAIL"

【讨论】:

    猜你喜欢
    • 2012-01-07
    • 2023-03-19
    • 2012-03-22
    • 2015-05-15
    • 2011-06-08
    • 2017-05-12
    • 2015-09-28
    相关资源
    最近更新 更多