使用 MailKit 的单个 SMTP 事务向多个收件人发送电子邮件

Send email to multiple recipients using individual SMTP transactions with MailKit

在我的环境中,我们通过 Office 365 SMTP 使用 MailKit 以编程方式发送电子邮件。我最近意识到这样一个事实,如果我发送一封有多个收件人的电子邮件,而其中一个地址不再存在于我们的组织中,O365 服务器将拒绝整封电子邮件(不将其发送给其余收件人)无效的。产生的错误是

5.4.1 Recipient address rejected: Access denied. 

当我发送电子邮件时,我更喜欢在电子邮件上显示所有收件人,以便每个人都知道涉及的人并可以回复该组。所有收件人都在我的组织内,因此他们已经拥有彼此的电子邮件地址。

根据 SMTP 的工作方式(使用单独的 RCPT 和 headers),似乎我应该能够与 headers 中的每个人发送电子邮件,但使用 SMTP 进行单独交易服务器,以便我可以捕获为每个地址生成的异常。

这可能与 MailKit 相关吗?

查看采用 MailboxAddress 参数的 Send() 和 SendAsync() 方法:

http://www.mimekit.net/docs/html/M_MailKit_MailTransport_Send_2.htm

这允许您准确控制将消息发送给谁,而不是让 MailKit 的 SmtpClient 通过收集收件人、抄送和密送地址来决定将消息发送给谁headers。