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

时间:2014-07-24 10:36:17

标签: c# email active-directory outlook exchange-server

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

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

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

       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属性还是我需要特殊的东西在那里考虑?

1 个答案:

答案 0 :(得分:0)

您需要使用AddressEntry.GetExchangeuser方法。请参阅我对您的其他帖子的回复。