2017-01-02 93 views
-2

我想通过SMTP使用PowerShell发送电子邮件。无法使用PowerShell通过SMTP服务器发送电子邮件

我已经存储了这些变量在config.ps1文件

$smtpServer = "10.0.52.10" 
$emailFrom = "[email protected]" 
$emailTo = "[email protected]" 
$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 

我的m是什么istake?我应该包括其他的东西来使它工作吗?

+2

嗨,你不需要登录名和密码吗? SMTP服务器是否可以从这台计算机上访问? – sodawillow

+0

yaaa ....对不对?但是,如何以及在哪里提供登录名和密码?/ – prudhvi

+1

请参阅[此问题](http://stackoverflow.com/questions/12460950/how-to-pass-credentials-to-the-send-mailmessage-command例如发送电子邮件)。 – sodawillow

回答

3

有了Gmail,我已经有了更多的运气,像下面这样做。我正在使用这个,因为我们说话,它工作得很好。

$EmailTo = "[email protected]" 
$EmailFrom = "[email protected]" 
$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("[email protected]", "PasswordHere"); 
$SMTPClient.Send($SMTPMessage) 

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

编辑:如果您还没有这样做,请允许您的Gmail在安全设置中使用安全性较低的应用,否则可能会被阻止。你可以看到更多,并在这里进行配置。 https://myaccount.google.com/intro/security

+0

使用您的代码,我可以从我的Gmail帐户发送电子邮件。我把你的整个代码放在我的脚本中并运行它。但是,请你告诉我在config.ps1文件中写什么,以及在脚本中包含什么。凭证必须是config.ps1文件,其余部分应该放在我的脚本中。如果我在config.ps1中使用用户名和密码,我怎么能将它们链接到我的脚本? – prudhvi

相关问题