2012-09-10 17 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进程。

你知道得越多。

相关问题