如何使用Microsoft Graph将现有电子邮件添加为新电子邮件的附件

问题描述

我正在尝试将现有电子邮件项目添加为新邮件的附件。目的是让我的Outlook插件将当前选择的电子邮件作为附件转发,以供其他人进一步查看。

基本上,这是我的操作方式:

  1. 获取我要转发的邮箱项目的ID:

    var itemId = Office.context.mailBox.convertToRestId(Office.context.mailBox.item.itemId,Office.MalBoxEnums.RestVersion.v2_0)

  2. 使用以下URL获取消息:

    var getMessageUrl = Office.context.mailBox.restUrl +'/v2.0/me/messages/'+ itemId

  3. 在此调用中将此附件用作附件:

    “消息”:{“主题”:“垃圾电子邮件:” +响应[“主题”],“正文”:{“ ContentType”:“文本”,“ Content”:“ Office加载项的测试。 ” },“ ToRecipients”:[{“ EmailAddress”:{“ Address”:to}}], “附件”:[{“ @ odata.type”:“#Microsoft.OutlookServices.ItemAttachment”,“ ContentType”:“ JSON”,“ Name”:响应[“ Subject”] +“ .eml”,“ Id”: itemId},“ SavetoSentItems”:“ false”

执行此操作时出现错误。我什至尝试传递我从第一个REST调用中获得的响应以获得原始错误。即使我收到时原样传递数据,它也不喜欢我传递的数据格式。

我要使它起作用的唯一方法是使用响应中的所有字段手动创建新附件。但是,这不会保留原始电子邮件的标头(我需要将其发送以进行审查)。它还使电子邮件处于草稿/未发送模式(即,当我打开它时,编辑器可以进行编辑和发送,而与打开已发送的电子邮件时编辑器的外观相反)。

有没有一种方法可以告诉API获取附件?为什么我必须先提取数据然后再发送回去?

我已经查看了此SO帖子,但需要更多帮助:

https://stackoverflow.com/a/46954993/267702

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)