【发布时间】: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