private static void ConnectToExchangeService()
{
service = new ExchangeService();
service.Credentials = new WebCredentials(USERNAME, PASSWORD, DOMAIN_NAME);
service.AutodiscoverUrl(USER_ADDRESS);
}
private static void ListGlobalContacts(ExchangeService service)
{
/* passing true as the third parameter to "ResolveName" is important to
make sure you get the contact details as well as the mailbox details */
NameResolutionCollection searchResult = service.ResolveName(NAME_YOURE_LOOKING_FOR, ResolveNameSearchLocation.DirectoryOnly, true);
foreach (NameResolution resolution in searchResult )
{
Console.WriteLine("name is " + resolution.Contact.DisplayName);
Console.WriteLine("address is " + resolution.Mailbox.Address);
Console.WriteLine("business phone is " + resolution.Contact.PhoneNumbers[PhoneNumberKey.BusinessPhone]);
Console.WriteLine("mobile phone is " + resolution.Contact.PhoneNumbers[PhoneNumberKey.MobilePhone]);
}
}
2 回答
这是如何使用EWS从您的联系人列表中获取联系人列表 . 我不确定如何从全局列表中获取联系人,仅在一小时前查看了API .
我已经无视创建动词的服务,请查看Exchange Web Services API以获取更多信息 .
首先,不要忘记添加对Microsoft Exchange Web服务库的引用 .
......和Brett Ryan已经提供了获取本地联系人列表的代码 .
这种检索全局联系人列表的方法(至少是其中一个)的问题在于,“ResolveName”函数最多可以返回100个联系人,这样如果您的组织有更多的记录,那么您就遇到了麻烦 . 一种可能的解决方法(以及我实现的解决方法)是对每个字母进行单独搜索(假设您可以验证此类搜索将始终返回少于100个结果)并将所有唯一条目串在一起列入一个列表 .