我目前正在创建一个使用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属性还是我需要特殊的东西在那里考虑?
答案 0 :(得分:0)
您需要使用AddressEntry.GetExchangeuser方法。请参阅我对您的其他帖子的回复。