【问题标题】:Unable to send email via SMTP server using powershell无法使用 powershell 通过 SMTP 服务器发送电子邮件
【发布时间】:2017-01-02 16:40:35
【问题描述】:

我正在尝试使用 powershell 通过 SMTP 发送电子邮件。

我已将这些变量存储在 config.ps1 文件中

$smtpServer = "10.0.52.10"
$emailFrom = "prudhvi.g@xiomi.com"
$emailTo = "prudhvi@gmail.com"
$emailsubject = "Health Check"
$emailbody = "Hi"

这是我发送电子邮件的脚本:

##################################################
#Send email with results
##################################################
. .\config.ps1

foreach ($line in $bodystring) 
    {
    $emailbody = $emailbody + $line + "`r`n"
    }


Send-MailMessage -To "$emailTo" -From "$emailFrom" -smtpServer "$smtpserver" -subject "$emailsubject" -body "$emailbody"

我得到这个错误:

Send-MailMessage : Unable to connect to the remote server
At C:\Users\administrator.SDC\Desktop\email.ps1:12 char:1
+ Send-MailMessage -To "$emailTo" -From "$emailFrom" -smtpServer "$smtpserver" -su ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
   ion
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

我的错误是什么?我应该添加其他内容以使其正常工作吗?

【问题讨论】:

  • 您好,您不需要登录名和密码吗?可以从这台计算机访问 SMTP 服务器吗?
  • yaaa....你对吗?但是,我如何以及在哪里提供登录名和密码?/
  • 例如见this question

标签: email powershell smtp


【解决方案1】:

使用 Gmail,我更幸运地做到了以下几点。我目前正在使用它,它工作得很好。

$EmailTo = "UserNameHere@gmail.com"
$EmailFrom = "UserNameHere@gmail.com"
$Subject = "New Posting"
$Body = $text 
$SMTPServer = "smtp.gmail.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("UserNameHere@gmail.com", "PasswordHere");
$SMTPClient.Send($SMTPMessage)

我相信用户名、密码、SSL 和端口都必须存在才能使用 Gmail。我可能是错的。您还需要确保您的 Gmail 已设置为允许此操作。

编辑:如果您还没有这样做,请允许您的 Gmail 在安全设置中使用不太安全的应用程序,否则它可能会被阻止。您可以在此处查看更多信息并进行配置。 https://myaccount.google.com/intro/security

【讨论】:

  • 使用您的代码,我可以从我的 gmail 帐户发送一封电子邮件。我已将您的整个代码放入我的脚本并运行它。但是,你能告诉我在我的 config.ps1 文件中写什么以及在我的脚本中包含什么。凭证必须是 config.ps1 文件,其余的应该在我的脚本中。如果我在 config.ps1 中使用用户名和密码,如何将它们链接到我的脚本?
猜你喜欢
  • 2018-10-17
  • 1970-01-01
  • 2014-10-27
  • 2022-01-09
  • 2014-10-15
  • 1970-01-01
  • 2016-02-09
相关资源
最近更新 更多