在Outlook邮件中发送邮件后,itemId正在更改

时间:2017-09-06 13:08:43

标签: office-js outlook-web-addins

我在撰写模式itemId之后收到saveAsync个邮件项目。

发送邮件项目后,Id中的Office.context.mailbox.item.itemId项与撰写模式中的项itemId不同。

用于在撰写模式下获取var itemId = Office.context.mailbox.item.itemId; if (itemId === null || itemId == undefined) { Office.context.mailbox.item.saveAsync(function (result) { itemId = result.value; }); } 的代码:

itemId

发送电子邮件后,我使用以下方式验证了已发送邮箱中的`Office.context.mailbox.item.itemId` 电子邮件:

itemId
令我惊讶的是它与众不同。

根据documentationitemId应该相同:

  

撰写模式下无法使用saveAsync属性。如果需要项标识符,可以使用AsyncResult.value方法将项​​目保存到商店,这将返回回调函数中class InviteForm(forms.Form): email1 = forms.EmailField(label='Email 1') 参数中的项标识符。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

首先,了解项目的itemId不是静态值非常重要。只要在Exchange中移动项目,ID就会更改。来自EWS documentation

  

Exchange中的标识符不透明。例如,EwsId是根据几个对开发人员来说不重要的信息创建的,但对Exchange很重要。

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