交换网络服务.从Outlook获取所有联系人,而不仅仅是从"联系人"文件夹中获取.找不到查找人员



我需要使用Exchange WebService从我的Outlook获取所有联系人和通讯组列表(及其联系人(。

我安装了Visual 2017和EWSManaged API 2.2。我的服务器具有 Exchange 2013,并且已安装 Exchange 2013 101 代码示例。

我现在拥有的:

选项 1.我有,但只显示 100 个联系人:

var nameResolutionCollection = service.ResolveName("SMTP:", ResolveNameSearchLocation.DirectoryOnly, true);

有了上面收到的这个 NameResolutionCollection,我怎么知道 NameResolution.Contact 是否是通讯组列表?我看不到任何属性...

选项 2.我有,但我只能从"联系人"文件夹中获取联系人。该文件夹有一个"收件人缓存"文件夹和一个 GAL 文件夹,但它是空的...

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Contacts, new ItemView(200));

选项 3.我有,但我从Outlook获取所有文件夹(例如便笺,发件箱,已发送邮件,...(

FindFoldersResults allFolders = service.FindFolders(WellKnownFolderName.Root, new FolderView(int.MaxValue) {Traversal = FolderTraversal.Deep});

选项 4.我可以从通讯组列表中获取所有联系人,但我需要名称:

ExpandGroupResults results = service.ExpandGroup("DistributionList@company.com");

我已经看到FindPeople可能会帮助我(https://gsexdev.blogspot.com/2013/05/using-ews-findpeople-operation-in.html( 但是我的项目找不到该类(FindPeopleType,FindPeople,...(

有什么帮助吗?FindPeople 是从我的 Outlook 获取所有联系人的唯一方法吗?不仅来自"联系人"文件夹

提前感谢, 迭 戈

FindPeopleType 是一个 EWS WSDL 代理类 https://blogs.msdn.microsoft.com/webdav_101/2017/12/15/about-exchange-service-xsd-and-wsdl/,您发布的示例来自 EWS Managed API(如果您使用的是最新版本的 gitHub,则确实实现了 FindPeople,但它没有以您可以对 GAL 进行分页的方式完成(。但是,如果这是OnPrem,另一种选择是使用System.Directory服务和LDAP来获取GAL联系人 http://www.infinitec.de/post/2011/10/25/Searching-the-Global-Address-List-C-Edition.aspx 或者其Office365使用Graph API。

最新更新