如何从 Microsoft Outlook 加载项检索完整的 MIME 消息?

How can I retrieve the full MIME message from an Microsoft Outlook Add-In?

我正在开发一个 Outlook Web Access 加载项,我想在其中访问电子邮件的所有数据,包括发件人地址、收件人地址、主题和发送日期等。我还想下载整个邮件文件。我找到了一个 Outlook Web REST API 但不知道如何使用它。

任何人都可以解释如何使用此 API 来检索整个 MIME 消息并提供示例吗?

1。要获取消息详细信息,您可以使用 office.js 中可用的 javascript API。请参阅 link 以了解有关单个 API 的详细信息:

https://dev.office.com/reference/add-ins/outlook/1.5/Office.context.mailbox.item?product=outlook&version=v1.5

2。获取整个消息文件。 GetMessage API 不会为您提供 .msg 文件,但它会为您获取消息的所有属性,您可以使用它来获取 javascript [未提供的有关消息的额外详细信息=40=]s直接。

3. 有一种方法可以使用以下两个步骤获取 .eml 文件:

第 1 步: 使用 JS API getCallbackTokenAsync([options], callback) 获取 EWS 回调令牌。参考link:

https://dev.office.com/reference/add-ins/outlook/1.5/Office.context.mailbox?product=outlook&version=v1.5

第 2 步: 使用服务器中的此令牌发出 EWS 请求以获取 IncludeMimeContent 设置为 true 的项目,并将响应保存为 .eml 文件。参考link:

https://msdn.microsoft.com/en-us/library/office/aa566013(v=exchg.150).aspx

我猜您想获取 MIME format 中的当前电子邮件(又名 *.eml 文件类型)。如果是,请查看答案。

1.交换网络服务 (EWS)。 2019 年前

你必须使用Exchange Web Services (EWS),有两种方法:

  1. 通过 makeEwsRequestAsync() method by setting IncludeMimeContent property in the request and process content of the MimeContent tag of the response (it's base64, so you may need to 在 JavaScript 中完成。

    但是在iOS/Android(link) and the email size limit for JavaScript APIs is (see all limitations of the JavaScript API)上不起作用,所以获取和解码电子邮件的实现必须在后端运行(这可能是一个服务器不必要的负载)。因此,您可能会忘记选项 #1 并开始阅读下一个选项。

  2. 发送 EWS 请求并在后端处理响应。但为此,您需要获取回调令牌(用于从后端进行身份验证)、电子邮件的项目 ID 和 EWS url(参见 )。

话说回来,有说有消息。自 2018 年 7 月起,Microsoft 仅发布 EWS 安全更新(参见 the official statement). They phase it out in favour of Microsoft Graph, the new gateway to Office data, which so far does NOT support export of email in the EML format. The feature is promised in beta 到 2018 年底。

2。微软图表。从2019年开始

EWS 是 dead and Microsoft Graph is the way to go. The Microsoft folks promised to expose the entire email MIME stream in Outlook Mail REST API (should be in beta by now). So keep an eye on Outlook mail REST API

注意:MS Graph 仅适用于 Exchange Online(云中的 Office 365)或 hybrid deployment 的本地 Exchange(至少需要 Exchange 2016 Cumulative Update 3 (CU3) 本地服务器与 Office 365 集成)。