Office365 如何从Microsoft Outlook加载项检索完整的MIME邮件?

Office365 如何从Microsoft Outlook加载项检索完整的MIME邮件?,office365,outlook-addin,office-js,Office365,Outlook Addin,Office Js,我正在开发一个Outlook Web Access加载项,我想在其中访问电子邮件的所有数据,包括发件人地址、收件人地址、主题和发送日期等。我还想下载整个邮件文件。我找到了一个,但不知道怎么用 有谁能解释一下如何使用此API检索整个MIME消息并提供一个示例吗?1。要获取消息详细信息,可以使用office.js中提供的javascript API。有关项目上可用的各个API的详细信息,请参阅链接: 2。获取整个消息文件。GetMessage API不向您提供.msg文件,但它将获取消息的所有属性

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


有谁能解释一下如何使用此API检索整个MIME消息并提供一个示例吗?

1。要获取消息详细信息,可以使用office.js中提供的javascript API。有关项目上可用的各个API的详细信息,请参阅链接:

2。获取整个消息文件。GetMessage API不向您提供.msg文件,但它将获取消息的所有属性,您可以使用它获取有关消息的额外详细信息,这些信息不是javascript API直接提供的

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

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

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


1。要获取消息详细信息,可以使用office.js中提供的javascript API。有关项目上可用的各个API的详细信息,请参阅链接:

2。获取整个消息文件。GetMessage API不向您提供.msg文件,但它将获取消息的所有属性,您可以使用它获取有关消息的额外详细信息,这些信息不是javascript API直接提供的

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

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

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


我猜您希望获取当前电子邮件(又名*.eml文件类型)。如果是,请参阅答案

1。Exchange Web服务(EWS)。2019年之前的年份

您必须使用,有两种方法:

  • 通过在响应的MimeContent标记的request和process内容中设置属性(它是base64,所以您可能需要)

    但它在iOS/Android()上不起作用,JavaScript API的电子邮件大小限制为(请参阅),因此获取和解码电子邮件的实现必须在后端运行(这可能是服务器不必要的负载)。因此,您可能会忘记选项1并开始阅读下一个选项

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

  • 话虽如此,还是有消息说。自2018年7月起,微软仅发布EWS的安全更新(请参阅)。他们逐步淘汰了它,取而代之的是新的办公室数据网关,该网关目前不支持以EML格式导出电子邮件。到2018年底,该项目将完成

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

    EWS是而且是一条路要走。微软希望在Outlook Mail REST API中公开整个电子邮件MIME流(现在应该是测试版了)。所以请密切关注


    注意:MS Graph仅适用于Exchange Online(云中的Office 365)或Exchange内部部署(至少需要Exchange 2016累积更新3(CU3)内部部署服务器与Office 365集成)。

    我猜您希望获取当前电子邮件(又称*.eml文件类型)。如果是,请参阅答案

    1。Exchange Web服务(EWS)。2019年之前的年份

    您必须使用,有两种方法:

  • 通过在响应的MimeContent标记的request和process内容中设置属性(它是base64,所以您可能需要)

    但它在iOS/Android()上不起作用,JavaScript API的电子邮件大小限制为(请参阅),因此获取和解码电子邮件的实现必须在后端运行(这可能是服务器不必要的负载)。因此,您可能会忘记选项1并开始阅读下一个选项

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

  • 话虽如此,还是有消息说。自2018年7月起,微软仅发布EWS的安全更新(请参阅)。他们逐步淘汰了它,取而代之的是新的办公室数据网关,该网关目前不支持以EML格式导出电子邮件。到2018年底,该项目将完成

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

    EWS是而且是一条路要走。微软希望在Outlook Mail REST API中公开整个电子邮件MIME流(现在应该是测试版了)。所以请密切关注


    注意:MS Graph仅适用于Exchange Online(云中的Office 365)或a中的Exchange内部部署(至少需要与Office 365集成的Exchange 2016累积更新3(CU3)内部部署服务器).

    谢谢你的回答。你能分享一下如何将响应保存为.eml文件的例子吗?事实上,我不知道如何开始在哪个文件中编写此代码。你有VS2017的例子吗?选项一使用Office js API是非常合理的,只要你实际上不需要实际的完整MIME消息。此API提供了足够的信息来构建新的MIME消息并将其写入