首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Outlook,消息移动到“已发送的项目”,仍以“[草稿]”标记。

Outlook,消息移动到“已发送的项目”,仍以“[草稿]”标记。
EN

Stack Overflow用户
提问于 2020-04-28 18:04:04
回答 1查看 1K关注 0票数 0

我正在使用office.js开发一个Outlook外接程序,用户可以使用后端服务发送安全电子邮件。

在撰写模式下,当用户使用外接程序发送电子邮件时,外接程序将使用Outlook / message /{id}/move将消息移动到“已发送的项”文件夹中,并且一切都正常,但有一个例外,即该消息仍被Outlook标记为“草稿”,这非常烦人,并且确实使刚刚发送电子邮件的用户感到困惑,因为他告诉他“该邮件尚未发送”。

我在API中搜索,看看是否有一种方法将电子邮件标记为“发送”,以防止Outlook显示此红色提示,但到目前为止没有运气!

所以,我的问题是:有什么方法可以克服这种误导的信息标记电子邮件,因为它是由Outlook发送的?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-14 16:12:25

最后,我能够为这个挑战找到一个完美的解决方案。

根据:

Microsoft Graph API mail office 365: Is any option create inbox message NOT as Draft?

  • @BrianClink的注释
  • 这个答案(它使用图形API但Outlook ):

将mailItem标记为“已发送”(未显示为“草稿”)并将其放在"SentItems“文件夹中的方法/步骤如下:

首先,使用ID

  • Clone将mailItem保存为“草稿”,然后检索它的mailItem属性,例如:‘发件人’、'Subject‘、'Body’、‘ToRecipients’等,这样您就可以得到它的确切副本。

代码语言:javascript
运行
复制
[
  {
     PropertyId: 'Integer 0x0E07',
     Value: '1'
  }
];

  • 将新项目序列化为JSON,并按以下方式将其发送到"sentitems“文件夹:

代码语言:javascript
运行
复制
xhr.open('POST', restHost + '/v2.0/me/MailFolders/sentitems/messages/');
xhr.send(clonedEmailJson);

  • On success,xhr.status=201创建了,使用删除请求

删除邮件草稿

最后,您将在"sentItems“文件夹中创建一个新邮件项,该邮件项目显示为Outlook :)

这对我来说是一个非常有用的解决方案,因为我的用户使用我的外接程序发送安全电子邮件(使用第三方API),而不是Outlook,因此,我希望他们拥有与使用Outlook时相同的UX/感觉。

注:

虽然这个解决方案对我来说非常有效,但它还是有代价的!在互联网连接缓慢或电子邮件包含大附件的情况下,处理可能会非常慢,因为加载项将首先将草稿保存到远程Exchange Server,获取其ID,然后复制它并将其再次发送到服务器,然后删除草稿。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61486924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档