在我的环境中,我们通过 Office 365 SMTP 使用 MailKit 以编程方式发送电子邮件。我最近意识到这样一个事实:如果我发送一封包含多个收件人的电子邮件,并且其中一个地址在我们的组织中不再存在,则 O365 服务器将拒绝整个电子邮件(不会将其发送给其余收件人),如果单个收件人无效的。产生的错误是
5.4.1 Recipient address rejected: Access denied.
当我发送电子邮件时,我更喜欢在电子邮件上显示所有收件人,以便每个人都知道谁参与其中并可以回复该群组。所有收件人都在我的组织内,因此他们已经拥有彼此的电子邮件地址。
根据 SMTP 的工作方式(具有单独的 RCPT 和 header ),我似乎应该能够向 header 中的每个人发送电子邮件,但使用 SMTP 服务器的单独事务,以便我可以捕获为每个事务生成的异常地址。
这可以用 MailKit 实现吗?
最佳答案
查看采用 MailboxAddress 参数的 Send() 和 SendAsync() 方法:
http://www.mimekit.net/docs/html/M_MailKit_MailTransport_Send_2.htm
这允许您准确地控制将消息发送给谁,而不是让 MailKit 的 SmtpClient 通过收集 To、Cc 和 Bcc header 中的地址来决定将消息发送给谁。
关于c# - 使用 MailKit 的单个 SMTP 事务向多个收件人发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63116610/