Powershell 如何通过单个SMTP连接发送多封电子邮件

Powershell 如何通过单个SMTP连接发送多封电子邮件,powershell,Powershell,Send-MailMessage命令的功能非常强大,但如果我想通过SMTP发送数百(或数千)封邮件,则需要数百\数千个单独的SMTP会话 PowerShell中是否有一种方法可以通过一个SMTP连接通过SMTP提交多封邮件 例如,我有100封电子邮件要发送。每封电子邮件都是唯一的(不同的收件人、发件人、主题和正文)。在这种情况下,我不想向多个收件人发送一封电子邮件。我希望通过单个连接将SMTP邮件发送到SMTP服务器,而不是打开100个单独的SMTP连接来发送我的100封电子邮件。说明“收件人”

Send-MailMessage命令的功能非常强大,但如果我想通过SMTP发送数百(或数千)封邮件,则需要数百\数千个单独的SMTP会话

PowerShell中是否有一种方法可以通过一个SMTP连接通过SMTP提交多封邮件


例如,我有100封电子邮件要发送。每封电子邮件都是唯一的(不同的收件人、发件人、主题和正文)。在这种情况下,我不想向多个收件人发送一封电子邮件。我希望通过单个连接将SMTP邮件发送到SMTP服务器,而不是打开100个单独的SMTP连接来发送我的100封电子邮件。

说明“收件人”属性是一个集合。因此,您应该能够一次指定多个电子邮件地址,而不需要每个收件人都有一个连接

说明“To”属性是一个集合。因此,您应该能够一次指定多个电子邮件地址,而不需要每个收件人都有一个连接

所以我做了一些网络跟踪测试,有趣的是,当使用Send MailMessage时,它会打开到SMTP服务器的连接,并且永远不会关闭它(只要我正在运行的PowerShell会话是打开的)。这或多或少解决了我的问题。我一直认为,在运行Send MailMessage时,它实际上会在连接完成时关闭连接,但直到SMTP服务器强制关闭它或PowerSHhell进程关闭后才会关闭连接


你知道的越多。

所以我做了一些网络跟踪测试,有趣的是,当使用Send MailMessage时,它会打开到SMTP服务器的连接,并且永远不会关闭它(只要我正在运行的PowerShell会话是打开的)。这或多或少解决了我的问题。我一直认为,在运行Send MailMessage时,它实际上会在连接完成时关闭连接,但直到SMTP服务器强制关闭它或PowerSHhell进程关闭后才会关闭连接


您知道的越多。

您是否尝试过使用分隔符指定多个电子邮件收件人?顺便问一下,这已经在线程中回答了-您尝试过使用分隔符指定多个电子邮件收件人吗?顺便问一下,这已经在线程中回答了-这仍然是一封电子邮件。我说的是提交多封非唯一电子邮件。例如,我有100封电子邮件要发送,有不同的收件人和不同的主体。SMTP绝对支持这一点,因此我正在寻找一种使用PowerShell的方法,这样我就不必通过100多个单独的SMTP连接发送电子邮件。查看前面线程中的一条评论,会发现“System.Net.Mail.SmtpClient在其生命周期内不会保持永久连接…”。从这个线程来看,您试图做的事情似乎是不可能的。我想上述线程中的代码片段就是您打算编写的代码。这就是我所想的。实际上,我有一种方法可以通过原始TCP连接(System.Net.Sockets.TcpClient、System.Net.Sockets.NetworkStream和System.IO.StreamReader)进行写入,但这真的…真的很难看。这仍然是一封电子邮件。我说的是提交多封非唯一电子邮件。例如,我有100封电子邮件要发送,有不同的收件人和不同的主体。SMTP绝对支持这一点,因此我正在寻找一种使用PowerShell的方法,这样我就不必通过100多个单独的SMTP连接发送电子邮件。查看前面线程中的一条评论,会发现“System.Net.Mail.SmtpClient在其生命周期内不会保持永久连接…”。从这个线程来看,您试图做的事情似乎是不可能的。我想上述线程中的代码片段就是您打算编写的代码。这就是我所想的。实际上,我有一种方法可以通过在原始TCP连接(System.Net.Sockets.TcpClient、System.Net.Sockets.NetworkStream和System.IO.StreamReader)上进行写入来实现这一点,但这真的…真的很难看。