Office js 在outlook mail中发送邮件后,itemId正在更改

Office js 在outlook mail中发送邮件后,itemId正在更改,office-js,outlook-web-addins,Office Js,Outlook Web Addins,在撰写模式下,我在saveAsync之后获取邮件项目的itemId 邮件项目发送后,进入Office.context.mailbox.item.itemId的项目Id与在撰写模式下给出的项目不同 用于在撰写模式下获取itemId的代码: var itemId=Office.context.mailbox.item.itemId; if(itemId==null | | itemId==未定义){ Office.context.mailbox.item.saveAsync(函数(结果){ item

在撰写模式下,我在
saveAsync
之后获取邮件项目的
itemId

邮件项目发送后,进入Office.context.mailbox.item.itemId的项目
Id
与在撰写模式下给出的项目不同

用于在撰写模式下获取itemId的代码:

var itemId=Office.context.mailbox.item.itemId;
if(itemId==null | | itemId==未定义){
Office.context.mailbox.item.saveAsync(函数(结果){
itemId=result.value;
});
}
发送电子邮件后,我使用以下方法从发送框验证电子邮件的
itemId

`Office.context.mailbox.item.itemId`
令我惊讶的是,情况有所不同

根据,项目ID的
itemId
应该是相同的:

itemId
属性在撰写模式下不可用。如果需要项目标识符,可以使用
saveAsync
方法将项目保存到存储区,这将在回调函数的
AsyncResult.value
参数中返回项目标识符


我做错了什么?

首先,重要的是要理解项的
itemId
不是静态值。每当在Exchange中移动项目时,ID都会更改。从:

交换中的标识符是不透明的。例如,EwsId是从几条信息创建的,这些信息对开发人员来说并不重要,但对交换很重要


至于发生这种情况的原因,是因为
saveAsync
将导致电子邮件保存到草稿文件夹。发送时,项目首先移动到发件箱,然后移动到“已发送项目”文件夹。每个文件夹更改(草稿、发件箱和已发送项目)都会导致
itemId
字段的更改

因此,如果我想在使用outlook rest api发送电子邮件后检索电子邮件,我需要做什么?您可以尝试的预览,它可能会解决此问题。谢谢,我希望保留在可用的outlook rest api内。预览有点太前沿了。