【问题标题】:UWP Get Outlook local contactsUWP 获取 Outlook 本地联系人
【发布时间】:2023-03-06 10:54:01
【问题描述】:

经过数小时的研究,我使用此代码使用 interop office 库从 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 联系人,就像在上面的版本中一样?

【问题讨论】:

  • 使用 Outlook 日历 REST Api msdn.microsoft.com/en-us/office/office365/api/…
  • 我认为此 API 仅适用于 Office 365,不适用于 Outlook 本地版本。
  • 我已将它与 Outlook 帐户一起使用,没有遇到任何问题。我使用 JavaScript 工作,但我认为它没有任何影响。

标签: c# .net outlook uwp windows-community-toolkit


【解决方案1】:

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

【讨论】:

  • 我也尝试过 Exchange Web 服务,但似乎我什至无法在 UWP 应用程序中添加 EWS 包。
  • 您不能使用 EWS 托管 API,但您可以使用任何 REST-ful 方法来发送 EWS 请求和处理响应。
  • 让我说清楚。我想访问“本地”Exchange Server 并从那里获取联系人。你能详细说明你的答案吗?我尝试了 EWS,但它似乎在 UWP 应用程序中不起作用。
  • 您可能正在尝试使用无法在 UWP 应用中使用的 EWS 托管 API。但是,所有 EWS 方法都可以通过 REST 调用,方法是在 POST 或 GET 方法中发送 XML 请求,并接收 XML 响应。您无需设置对任何 Exchange API 的引用。示例见此处:msdn.microsoft.com/en-us/library/office/dn789003.aspx
猜你喜欢
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2020-09-20
相关资源
最近更新 更多