繁体   English   中英

Exchange路由代理检测电子邮件方向

[英]Exchange Routing Agent Detect Email Direction

我们有一个Exchange Trasport代理,它专门是一个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种可能的解决方案:

  1. 根据“接受域”列表检查发件人域
  2. 使用通讯簿检查发件人是否为内部
  3. 检查InboundDeliveryMethod属性,并查看它是否是从邮箱创建的

最后,我们决定我们真的想检查仅从邮箱生成并与#3一起发送的邮件。 #1听起来似乎可能包含实际上只是“转发”域的域,并且我们不想在应用程序中考虑这些消息。

AcceptedDomains会告诉您Exchange组织将要研究的所有SMTP域。 例如,如果Exchange传输服务器对邮件进行邮件分类(如果邮件是到接受域内的地址),它将负责将该邮件传递给该收件人(邮件中可以有多个收件人,以便指向该邮件也许分叉并传递给内部收件人,然后发送给外部收件人)。

您所做的只是告诉您发件人在哪里,而实际上并不是消息的方向。 OnSubmittedMessage意味着您是在组织内部发送邮件的情况下,在进行任何分类之前捕获邮件的,但是如果该邮件同时具有内部和外部收件人,则该邮件将具有多个目的地。

https://social.msdn.microsoft.com/Forums/zh-CN/9387e62a-76d7-4340-b9cc-f87ffcfab8b1/how-to-detect-the-message-source-in-an- exchange-server-2013-transport-agent-for-the-send-send?forum = exchangesvrdevelopment ,我建议您看一下

干杯格伦

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM