Outlook Web Addin,检索附件

时间:2018-01-02 14:57:35

标签: office365 outlook-addin outlook-restapi outlook-web-addins

我试图弄清楚如何从电子邮件中检索附件。 我已经有了一个可以访问邮件的几个属性的工作网络加载项,例如主题,收件人,发件人,正文等。

现在我想要检索附件并弄清楚这是如何完成的,我下载了示例项目https://github.com/OfficeDev/Outlook-Add-in-Javascript-GetAttachments

我无法让它发挥作用。在构建和调试部分下,它将设置名为 AttachmentExampleService 的项目设置为Action = start。 这似乎是不正确的,因为这个项目是解决方案中的其余服务,而不是驱动界面的项目 - 我确实尝试了但它只是使项目无法使用,因为它显然不会启动而不是浏览器也不会Outlook客户端全部取决于哪个被设置为项目的客户端。

如果我没有设置Action = start(默认值),当我从VS2017运行解决方案时,正确的Web应用程序启动,预期的按钮也会出现在浏览器和Outlook客户端中。

但是,无论是浏览器还是Outlook客户端(在本例中为2016),加载项都无法正常工作。

一个名为"测试附件"的按钮。按预期显示,但按下它会产生相同的结果,即" 未知错误 出现意外错误:0 - "。

我可以在代码(AttachmentExampleWeb项目中的Home.js)中看到" 0"是" - "是XMLHttpRequest对象的status属性。应该是XMLHttpRequest对象的statusText属性,在这种情况下是空的。

我还尝试让其他服务将一些输出写入文件,但在这方面根本没有任何事情发生 - 我不认为while过程能够实现这一目标。

我还试图为项目设置正确的端口(javascript文件中的ajax调用的url中有一个端口),但它没有任何区别。

我还试图让Fiddler跑去嗅探被发送的内容,但我无法看到任何可以理解的内容,并确定在这种情况下是错误。

有谁知道这里的问题是什么? 或者是否有一个更好/更新的代码示例在那里,我还没有找到?

所有帮助和/或指示赞赏:)

2 个答案:

答案 0 :(得分:1)

很抱歉给您带来不便,我们在这里有更新版本:https://github.com/OfficeDev/outlook-add-in-attachments-demo/

如果您遇到问题,请告诉我们。

答案 1 :(得分:1)

好的,所以在这里解决我认为真正的问题,“我如何访问加载项中的附件?”

Outlook加载项API无法直接访问附件内容。它为您提供有关附件(名称,大小,ID)的元数据,但不提供位本身。您必须使用该元数据来使用EWS或REST检索文件的内容。通常,由于文件可能很大,下载它们可能需要一些时间,因此加载项不会从加载项的JS代码中进行下载,而是将元数据推送到处理任务的后端服务。 / p>

Outlook团队提到的示例使用此方法。如果您对OneDrive内容的写入不感兴趣(这是Graph客户端和样本的SSO组件的原因),那么是的,SaveAttachmentsWithDistinctTokens是值得一看的地方。您会注意到它使用加载项检索的REST令牌(通过getCallbackTokenAsync)通过Outlook REST API获取附件数据。然后你可以随意做任何事情:)