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

标签 c# email office365 mailkit

在我的环境中,我们通过 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/

相关文章:

azure - 如何在 Microsoft Graph Mail API 上对 $filter 使用 'in' 运算符?

c# - 如何在web服务和手机之间进行身份验证?

c# - WinForm ListView 布局问题

php - 用于 php 的简单 SMTP 电子邮件验证功能?另外,值得吗?

java - 如何使用JAVA代码发送电子邮件?

PHP 邮件脚本每晚同一时间自动运行

excel - 如何在不拖动的情况下使用自动更新公式

c# - 属性选择器 Expression<Func<T>>。如何获取/设置所选属性的值

c# - 在字典中查找最接近给定值的值 C#

excel - 生成每个可能的 VBA 引用 GUID 的列表