2017-05-04 89 views
0

之后的研究小时,我实现互操作使用办公库,以获得从Outlook联系人,使用此代码UWP获取的Outlook本地联系人

 var outlookApplication = new Application(); 
     NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI"); 
     MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts); 

     for (int i = 1; i < contacts.Items.Count + 1; i++) 
     { 
      var contact = (ContactItem)contacts.Items[i]; 
      Console.WriteLine(contact.FullName); 
      Console.WriteLine(contact.Email1Address); 
      Console.WriteLine(); 
     } 

我的目标是做这样的事情在UWP应用。当我试图将Outlook互操作库转换为UWP时,出现错误。读完一些书后,我发现我不能在UWP应用程序中使用这个COM库。 所以我的问题是:如何在UWP应用程序中获得Outlook联系人,就像上面的版本一样?

+1

使用Outlook日历REST API https://msdn.microsoft.com/zh-cn/office/office365/api/calendar-rest-operations –

+0

我认为这个API只适用于Office 365,不适用于Outlook的前提版本。 –

+0

我用它与Outlook帐户并没有任何问题。我从JavaScript开始工作,但我认为它没有任何影响力。 –

回答

0

您将需要使用基于Web的API,如Graph,Outlook Contacts或Exchange Web服务。 UWP应用程序被沙盒化,无法从Win32电子邮件客户端访问电子邮件帐户数据。因此,您只能访问Exchange,Office 365或Outlook.com中的基于Web的电子邮件数据。

+0

我也试过Exchange Web服务,看来我甚至无法在UWP应用程序中添加EWS包。 –

+0

您无法使用EWS托管API,但可以使用任何REST-ful方法发送EWS请求并处理响应。 –

+0

让我说清楚。我想访问“内部部署”Exchange Server并从那里访问联系人。你能详细说明你的答案吗?我尝试了EWS,但它似乎不适用于UWP应用程序。 –