itemId меняется после отправки почты в Outlook mail

Я получаю 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 должен быть таким же:

Свойство itemId недоступно в режиме создания. Если требуется идентификатор элемента, можно использовать метод saveAsync для сохранения элемента в хранилище, который вернет идентификатор элемента в параметре AsyncResult.value в функции обратного вызова.

Что я делаю неправильно?


person Rajeev    schedule 06.09.2017    source источник


Ответы (1)


Во-первых, важно понимать, что itemId элемента не является статическим значением. Идентификатор будет меняться всякий раз, когда элемент перемещается в Exchange. Из документации EWS. :

Идентификаторы в Exchange непрозрачны. Например, EwsId создается из нескольких фрагментов информации, которые не важны для вас как разработчика, но важны для Exchange.

Что касается того, почему это происходит, это потому, что saveAsync приведет к сохранению электронной почты в папке «Черновики». При отправке элемент сначала перемещается в папку «Исходящие», а затем в папку «Отправленные». Каждое изменение этих папок (Черновики, Исходящие и Отправленные) приводит к изменению поля itemId.

person Marc LaFleur    schedule 06.09.2017
comment
Итак, если я хочу получить электронное письмо после того, как оно было отправлено с помощью API ожидания ожидания Outlook, что мне нужно сделать? - person David Clarke; 16.09.2019
comment
Вы можете попробовать предварительную версию Immutable Id. вокруг этого вопроса. - person Marc LaFleur; 16.09.2019
comment
Спасибо, я надеялся остаться в пределах доступного API для отдыха Outlook. Предварительный просмотр немного слишком кровоточащий. - person David Clarke; 16.09.2019