2017-01-02 134 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

相關問題