用于读取GAL的邮件的Microsoft Exchange / Active Directory属性

本文关键字:Active Directory 属性 Exchange 读取 GAL 用于 Microsoft | 更新日期: 2023-09-27 18:14:48

我目前正在创建一个应用程序,该应用程序使用outlook以及我公司的exchange服务器/活动目录来创建邮件(我已经有了一些其他问题)。

我目前正试图阅读GAL,以便在我的应用程序发送邮件时使用它。从我到目前为止所看到的解决方案中,在我看来,我从活动目录中读取邮件地址而不是连接到交换服务器的变体(我首先尝试了outlook,但除了只获得带有"EX"类型的帐户名称之外,因此它们存储在交换服务器上,我没有得到太多信息)。

到目前为止,我所做的是访问活动目录并从那里读取所有用户

       DirectorySearcher objsearch = new DirectorySearcher();
        String strrootdse = objsearch.SearchRoot.Path;
        DirectoryEntry objdirentry = new DirectoryEntry(strrootdse);
        objsearch.Filter = "(& (mailnickname=*)(objectClass=user))";
        objsearch.SearchScope = System.DirectoryServices.SearchScope.Subtree;
        objsearch.PropertiesToLoad.Add("cn");
        objsearch.PropertiesToLoad.Add("mail");
        objsearch.PropertyNamesOnly = true;
        objsearch.Sort.Direction = System.DirectoryServices.SortDirection.Ascending;
        objsearch.Sort.PropertyName = "cn";
        SearchResultCollection colresults = objsearch.FindAll();
        List<String> arrGal = new List<String>();
        foreach (SearchResult objresult in colresults)
        {
            arrGal.Add(objresult.GetDirectoryEntry().Properties["cn"].Value + ": " + objresult.GetDirectoryEntry().Properties["mail"].Value);
            }

现在,在查看活动目录后,我看到还有代理,并且(至少在我的公司)"mail"属性不一定是代理中列出的邮件地址之一。

因此,我发现了这两个属性:msExchShadowProxyAddresses, proxyAddresses

从我所看到的到目前为止,从他们看的样本,他们看起来是一样的,但即使搜索我没有找到任何东西在网上到目前为止。

因此我的问题,当我试图从活动目录获得GAL我可以使用这两个属性(因此它们总是相同的),或者我应该只使用ShadowProxy属性,或者有一些东西我需要考虑到特殊的考虑?

用于读取GAL的邮件的Microsoft Exchange / Active Directory属性

您需要使用AddressEntry。GetExchangeuser方法。