我在撰写模式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
令我惊讶的是它与众不同。
根据documentation,itemId
应该相同:
撰写模式下无法使用
saveAsync
属性。如果需要项标识符,可以使用AsyncResult.value
方法将项目保存到商店,这将返回回调函数中class InviteForm(forms.Form): email1 = forms.EmailField(label='Email 1')
参数中的项标识符。
我做错了什么?
答案 0 :(得分:4)
首先,了解项目的itemId
不是静态值非常重要。只要在Exchange中移动项目,ID就会更改。来自EWS documentation:
Exchange中的标识符不透明。例如,EwsId是根据几个对开发人员来说不重要的信息创建的,但对Exchange很重要。
至于为什么会发生这种情况,因为saveAsync
会导致电子邮件保存到“草稿”文件夹中。发送时,项目首先移动到发件箱,然后移动到已发送邮件文件夹。每个文件夹更改(草稿,发件箱和已发送邮件)都会导致itemId
字段发生更改。