2012-09-10 19 views
1

Send-MailMessage命令對於它的功能非常棒,但如果我想通過SMTP發送數百(或數千)個郵件,則需要數百單獨的SMTP會話。如何通過單個SMTP連接發送多個電子郵件

有沒有一種方法可以讓PowerShell通過一個SMTP連接通過SMTP提交多條消息?

例如,我有100封電子郵件發送。每封電子郵件都是唯一的(不同的收件人,發件人,主題和正文)。這不是我想要將單個電子郵件發送給多個收件人的情況。我期望通過單個連接將SMTP郵件發送到SMTP服務器,而不是打開100個單獨的SMTP連接來發送我的100封電子郵件。

+0

您是否嘗試使用分隔符指定多個電子郵件收件人? – randominstanceOfLivingThing

+0

順便說一句,這已經在線程回答 - [Powershell發送郵件消息 - 電子郵件給多個收件人](http://stackoverflow.com/questions/10241816/powershell-send-mailmessage-email-to-multiple-recipients) – randominstanceOfLivingThing

回答

0

documentation表示「To」屬性是一個集合。因此,您應該能夠一次指定多個電子郵件地址,而不需要每個收件人都有一個連接。

+0

那還是一封電子郵件。我正在討論提交多個非唯一的電子郵件。例如,我有100封電子郵件可以發送不同組的收件人和不同組的主體\主題。 SMTP絕對支持這一點,所以我正在尋找一種方法來使用PowerShell,所以我不必通過100多個單獨的SMTP連接發送電子郵件。 –

+0

你能否通過編輯你的問題來闡述一個例子。 – randominstanceOfLivingThing

+0

在早期的線程[循環SmtpClient.Send()](http://stackoverflow.com/questions/9083991/loop-over-smtpclient-send)看看其中一個評論說:「System.Net.Mail。 SmtpClient在其生命週期內不保持連接...「。從這個線程看來,你試圖做的事情是不可能的。我認爲在提到的線程中的代碼片段就是你想要編寫的代碼。 – randominstanceOfLivingThing

1

所以我做了一些測試,做了一些網絡跟蹤,有趣的是,使用Send-MailMessage時,它打開了一個到SMTP服務器的連接,並且從不關閉它(只要我運行的PowerShell會話打開) 。所以這或多或少地解決了我的問題。我始終認爲,當Send-MailMessage運行時,它實際上在連接完成時關閉連接,但直到SMTP服務器強制關閉連接或關閉PowerSHhell進程。

你知道得越多。

相關問題