如何从Node.js Outlook加载项中的Outlook邮件中获取附件内容?

问题描述 投票:0回答:1

首先,作为一名学生,我缺乏一些经验,无法理解有关我尝试过的事情和尝试过的事情的一切。但是,我仍然觉得我已经尝试了网络上几乎所有可用的解决方案。

我正在为我的公司开发基于Yeoman的Outlook加载项(带有Node.js的完整javascript),我到了需要从邮件中获取附件的地步,而不仅仅是大小,文件等信息。附件的类型或名称,如果可能的话,我需要完整的内容,在base64中(以生成包含邮件正文和附件的.eml文件)。

我已经找到了多种方法来解决问题,但是它们都不起作用:

  • 首先,我尝试使用凌乱的Microsoft文档,发现的第一个解决方案是:https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/get-attachments-of-an-outlook-item,问题是,使用此解决方案,我需要使用c#,但是我的插件是完整的js,并且我需要找到一个与JS和Node.js兼容的解决方案]
  • 然后,我寻找了一种解决方案,该解决方案使我可以与Exchange Server进行一种或多种通信方式来获取附件内容,然后我发现了这个问题:https://github.com/gautamsi/ews-javascript-api,但该方法不适用于面向浏览器的加载项(并且需要我的插件才能在客户端和浏览器上使用),因此我使用了https://github.com/gautamsi/ews-js-api-browser。我在第一个链接和此处找到了一些代码示例:Save outlook Email attachment using ews-javascript-api npm in node JS帮助我构建了一些应该起作用的东西(在第二个链接的示例代码上使用了第二个链接的示例语法),但是到了我要尝试的地步为了从邮件中获取附件,我从附件中获得了很多信息,但是与它的内容相关的任何内容都是空的,下一步,我“加载”文件从“服务”中返回错误500,其中“文档为空”,我仍然不知道为什么。
  • 最后,我尝试退后一步,在Google上查找Office api以及如何获取附件内容,并且我发现了此链接:https://blog.mastykarz.nl/office-365-unified-api-mail/看起来确实很不错,我是对的:根据microsoft doc,我需要一个令牌才能使office 365 api url正常工作,当管理员授权您获得Azure AD时,Azure AD会给出该令牌(或者,我认为,这是microsoft doc所在的部分信使)。问题是,在Azure AD上进行连接时,我从网站的屏幕上显示了一个错误(绝对没有关于错误的详细信息),为了获取令牌我需要访问的某些地方无法正常工作,显示了另一个错误消息,没有任何详细信息,或者只是从不加载。

我已尽可能减少问题的大小,不想淹没您的信息,示例代码,链接和图片,因此,如果它看起来太长且细节太差,抱歉。

感谢您的时间,随时提出您想出的任何解决方案,建议或意见!

javascript node.js outlook outlook-addin email-attachments
1个回答
0
投票

做同样的事情,我找到的解决方案:

  • 在客户端(Office.context.mailbox.getCallbackTokenAsync())中获取exchangeToken
  • 向服务器发送令牌,附件ID,电子邮件ID(在我的情况下为C#,在您的情况下为nodejs)
  • 使用EWS Managed API 2.0或您的情况ews-javascript-api处理加载电子邮件mimecontent(包含电子邮件+附件)或附件mimecontent。
  • 将文件上传到另一个服务或使用它做任何您想做的事。

在服务器端切换到C#之前,我使用的是nodejs进行测试,因此,如果您有任何疑问,请随时提问。

© www.soinside.com 2019 - 2024. All rights reserved.