Идентификаторы предметов и вложения, которые меняются - PullRequest
0 голосов
/ 07 июня 2018

Я боролся уже несколько месяцев со случайной ошибкой в ​​графике MS API.Наконец, я обнаружил некоторый смысл во всем этом беспорядке, но я думаю, что в графе api есть ошибка.

Я разработал многопользовательский outlook-addin (JS), который мои клиенты используют для хранения своих электронных писем и /или вложения в хранилище.Я использую объект Office.context.mailbox.item, чтобы извлечь ItemId сообщения и идентификаторы вложений.Я отправляю эти идентификаторы серверу, чтобы сделать тяжелую работу по извлечению электронной почты и / или вложений с помощью EWS.Поскольку у клиента есть выбор, какие вложения сохранять, мне нужно отправить идентификаторы выбранных вложений на сервер, где я получу электронную почту и вложения.Однако, когда я пытаюсь сопоставить идентификаторы вложений с выбранными в приложении Outlook, они отличаются, и я не могу найти правильные вложения.Это происходит со случайными сообщениями, со случайными арендаторами.

Из того, что я вижу по идентификаторам электронной почты и вложений, похоже, что перед идентификатором вложения стоит префикс идентификатора электронной почты.Иногда они не совпадают.Пример:

Пользователь выбирает электронную почту в клиенте Outlook для настольного компьютера (Mac или Windows) и получает этот идентификатор для электронной почты:

AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAA=

Вложение имеет этот идентификатор (который НЕ СДЕЛАЕТ)сопоставьте идентификатор электронной почты):

AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAAAAEJAADVFKe56AEMQo4qySw0u6tyAABBmmK4AAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=

, но когда я запрашиваю EWS, используя идентификатор электронной почты (я знаю о различиях идентификаторов REST / EWS), я получаю этот идентификатор для вложения (которые соответствуютидентификатор электронной почты):

AAMkADYxNWNjMTRiLWFjYTYtNDM1OS04MTNjLThiNzM1ZWM0ZDFmZgBGAAAAAADbXpqFYshcSYLgLaL8DcdZBwDVFKe56AEMQo4qySw0u6tyAAAfj8mWAADVFKe56AEMQo4qySw0u6tyAABBmpnFAAABEgAQAOBOPI4JZ71CuMzlk7nqfZw=

Самое смешное, что он работает из OWA - этот идентификатор подключения правильный.Это конкретное электронное письмо было перемещено, и я знаю, что при перемещении файлов идентификатор изменяется, но разве не должен следовать идентификатор вложения?В EWS идентификатор, кажется, изменился, но не в Outlook

1 Ответ

0 голосов
/ 07 июня 2018

Я использовал свои умения шепотом идентификаторов, чтобы посмотреть ваши идентификаторы.

Первый - это идентификатор самого предмета, а не вложение на предмете.Фактический PR_ENTRYID для этого идентификатора: AAAAANtemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB + PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA ==

, а элемент - второй, но это второй элемент, но это второй элемент, но второй.PR_ENTRYID для этого идентификатора AAAAANtemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAAAAAQkAANUUp7noAQxCjirJLDS7q3IAAEGaYrgAAA == 1006 * Attachment идентификатор часть: EADgTjyOCWe9QrjM5ZO56n2c 1008 * третий один также вложение, то же самое «прикрепление идентификатор» часть Ид, но в данном случае этоотносится к элементу в исходном местоположении.Как вы можете видеть, PR_ENTRYID соответствует: AAAAANtemoViyFxJguAtovwNx1kHANUUp7noAQxCjirJLDS7q3IAAB + PyZYAANUUp7noAQxCjirJLDS7q3IAAEGamcUAAA == 1016 * го-го-го-го * * * * * * * *Это выглядит так, что во втором случае элемент находился в другой папке.PR_ENTRYID состоит из FID (идентификатор папки) и MID (идентификатор сообщения).В результате, если элемент перемещается из одной папки в другую, идентификатор изменяется.Вы перемещаете его обратно, он возвращается к своему старому идентификатору.Странно, я знаю.

Это хорошая причина для Microsoft придумать неизменный идентификатор:)

...