2013-09-05 33 views
0

我不能得到這個在Windows工作7客戶端使用PowerShell 2發送郵件使用PowerShell的Windows 7

$smtpServer = "smtp.example.com" 
$msg = new-object Net.Mail.MailMessage 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
$msg.From = "[email protected]" 
$msg.ReplyTo = "[email protected]" 
$msg.To.Add("[email protected]") 
$msg.subject = "My Subject" 
$msg.body = "This is the email Body." 
$smtp.Send($msg) 

我收到寫着「異常調用‘與‘1’參數發送’失敗時發送異常郵件「 任何人有任何想法? 我已經嘗試了Send-MailMessage,但它也失敗了,如果我在基於Windows的服務器上運行該命令,它的執行效果很好。 我爲這些過程使用相同的帳戶。

+0

請顯示您正在獲取的確切錯誤。你可以連接到'$ smtpServer'嗎?用'telnet smtp.xxxx.com 25'檢查。 –

+0

顯示你得到的確切的錯誤,特別是當你使用'Send-MailMessage'(這比'Net.Mail'更可取)。 – alroc

回答

2

這可能是由於很多原因造成的,但是我看到這個完全相同的錯誤是一個問題,因爲反病毒程序阻止Powershell發送電子郵件。通過查看您的反病毒日誌來檢查是否屬於這種情況。

除此之外,你可能要檢查,如果防火牆是好的,你可以連接到SMTP服務器等

+0

解決了這個問題,與我們的網絡技術人員交談,並從常規客戶端網絡端口25被阻止。將不得不嘗試與Outlook和comobject做到這一點 – TelefoneN

1

這可能會實現:

$ol = New-Object -comObject Outlook.Application 
$mail = $ol.CreateItem(0) 
$Mail.Recipients.Add("[email protected]") 
$Mail.Subject = "PS1 Script TestMail" 
$Mail.Body = "Test Mail" 
$Mail.Send() 

# you can use this for HTML-Mails 
# $Mail.HTMLBody = "<HTML><HEAD>Text<B>BOLD</B> <span style='color:#E36C0A'>Color Text</span></HEAD></HTML>" 
# you can use this for attache a file 
# $Mail.Attachments.Add("D:\scripte\ol.txt") 

如需進一步reference

0

將端口更改爲25個作品,但爲什麼?