Exchange 路由代理检测电子邮件方向
Exchange Routing Agent Detect Email Direction
我们有一个 Exchange Trasport Agent,具体来说就是一个 RoutingAgent。在 OnSubmittedMessage
事件中,我们需要检查 MailItem
并确定它是出站还是入站。我目前正在考虑使用 SmtpServer.AcceptedDomains
属性 检查发件人电子邮件是否在接受的域列表中。这是我们如何尝试执行此操作的示例:
private bool IsOutbound(MailItem mailItem, AcceptedDomainCollection acceptedDomains)
{
if (acceptedDomains.Find(mailItem.FromAddress) != null)
{
return true;
}
return false;
}
我对接受域不是很熟悉,我想知道这是否是可靠地确定电子邮件方向的可行解决方案?此方案还需要适用于在其 Exchange 组织设置中包含多个域的公司。请注意,如果有任何不同,我们计划支持 Exchange 2010-2016。
--编辑--
在得到@GlenScales 的帮助后,我意识到我需要稍微更新一下我的问题。
我的目标是确定电子邮件的发件人是否位于 Exchange 组织的内部域中。这也可以通过确定电子邮件是否在 Exchange 中生成来实现,我们可以在稍后阶段检查收件人,看看它是入站还是出站。
话虽如此,我们研究了 3 种可能的解决方案:
- 根据接受域列表检查发件人域
- 使用地址簿检查发件人是否为内部发件人
- 检查 InboundDeliveryMethod 属性 并查看它是否是从邮箱创建的
最后我们决定,我们真的想要检查仅从邮箱生成的邮件,并选择了#3。 #1 听起来可能包含实际上只是 "forwarding" 个域的域,我们不想在我们的应用程序中考虑这些消息。
AcceptedDomains 告诉您 Exchange 组织将研究的所有 SMTP 域。例如,当 Exchange 传输服务器对消息执行消息分类时,如果消息发往接受域内的地址,它将负责将该消息传递给该收件人(消息中可以有多个收件人,以便指向消息可能分叉并交付给内部收件人,然后发送给外部收件人)。
你所做的只是告诉你发件人来自哪里,而不是消息本身的方向。 OnSubmittedMessage 意味着您在进行任何分类之前捕获消息,如果该消息是从您的组织内部发送的消息,但如果该消息同时具有内部和外部收件人的一些副本,那么它将有多个目的地。
干杯
格伦
我们有一个 Exchange Trasport Agent,具体来说就是一个 RoutingAgent。在 OnSubmittedMessage
事件中,我们需要检查 MailItem
并确定它是出站还是入站。我目前正在考虑使用 SmtpServer.AcceptedDomains
属性 检查发件人电子邮件是否在接受的域列表中。这是我们如何尝试执行此操作的示例:
private bool IsOutbound(MailItem mailItem, AcceptedDomainCollection acceptedDomains)
{
if (acceptedDomains.Find(mailItem.FromAddress) != null)
{
return true;
}
return false;
}
我对接受域不是很熟悉,我想知道这是否是可靠地确定电子邮件方向的可行解决方案?此方案还需要适用于在其 Exchange 组织设置中包含多个域的公司。请注意,如果有任何不同,我们计划支持 Exchange 2010-2016。
--编辑--
在得到@GlenScales 的帮助后,我意识到我需要稍微更新一下我的问题。
我的目标是确定电子邮件的发件人是否位于 Exchange 组织的内部域中。这也可以通过确定电子邮件是否在 Exchange 中生成来实现,我们可以在稍后阶段检查收件人,看看它是入站还是出站。
话虽如此,我们研究了 3 种可能的解决方案:
- 根据接受域列表检查发件人域
- 使用地址簿检查发件人是否为内部发件人
- 检查 InboundDeliveryMethod 属性 并查看它是否是从邮箱创建的
最后我们决定,我们真的想要检查仅从邮箱生成的邮件,并选择了#3。 #1 听起来可能包含实际上只是 "forwarding" 个域的域,我们不想在我们的应用程序中考虑这些消息。
AcceptedDomains 告诉您 Exchange 组织将研究的所有 SMTP 域。例如,当 Exchange 传输服务器对消息执行消息分类时,如果消息发往接受域内的地址,它将负责将该消息传递给该收件人(消息中可以有多个收件人,以便指向消息可能分叉并交付给内部收件人,然后发送给外部收件人)。
你所做的只是告诉你发件人来自哪里,而不是消息本身的方向。 OnSubmittedMessage 意味着您在进行任何分类之前捕获消息,如果该消息是从您的组织内部发送的消息,但如果该消息同时具有内部和外部收件人的一些副本,那么它将有多个目的地。
干杯 格伦