我正在使用office.js开发一个Outlook外接程序,用户可以使用后端服务发送安全电子邮件。
在撰写模式下,当用户使用外接程序发送电子邮件时,外接程序将使用Outlook / message /{id}/move将消息移动到“已发送的项”文件夹中,并且一切都正常,但有一个例外,即该消息仍被Outlook标记为“草稿”,这非常烦人,并且确实使刚刚发送电子邮件的用户感到困惑,因为他告诉他“该邮件尚未发送”。
我在API中搜索,看看是否有一种方法将电子邮件标记为“发送”,以防止Outlook显示此红色提示,但到目前为止没有运气!
所以,我的问题是:有什么方法可以克服这种误导的信息标记电子邮件,因为它是由Outlook发送的?
提前谢谢。
发布于 2020-05-14 16:12:25
最后,我能够为这个挑战找到一个完美的解决方案。
根据:
Microsoft Graph API mail office 365: Is any option create inbox message NOT as Draft?
将mailItem标记为“已发送”(未显示为“草稿”)并将其放在"SentItems“文件夹中的方法/步骤如下:
首先,使用ID
[
{
PropertyId: 'Integer 0x0E07',
Value: '1'
}
];
xhr.open('POST', restHost + '/v2.0/me/MailFolders/sentitems/messages/');
xhr.send(clonedEmailJson);
删除邮件草稿
最后,您将在"sentItems“文件夹中创建一个新邮件项,该邮件项目显示为Outlook :)
这对我来说是一个非常有用的解决方案,因为我的用户使用我的外接程序发送安全电子邮件(使用第三方API),而不是Outlook,因此,我希望他们拥有与使用Outlook时相同的UX/感觉。
注:
虽然这个解决方案对我来说非常有效,但它还是有代价的!在互联网连接缓慢或电子邮件包含大附件的情况下,处理可能会非常慢,因为加载项将首先将草稿保存到远程Exchange Server,获取其ID,然后复制它并将其再次发送到服务器,然后删除草稿。
https://stackoverflow.com/questions/61486924
复制相似问题