Exchange EWS MessageId -> также доступен в ActiveSync?

Есть ли способ получить тот же " MessageId", который вы можете получить в Exchange EWS при использовании ActiveSync?

Я думал, что это способ Exchange уникально идентифицировать каждое сообщение, но я не могу найти способ извлечь его с помощью ActiveSync.

РЕДАКТИРОВАТЬ: у меня есть 2 приложения, одно, которое хранит информацию с помощью ActiveSync, и одно, которое хранит информацию с помощью EWS, и я хочу, чтобы они могли работать отдельно над тем же сообщением.... Чтобы сделать это, я надеялся используйте EWS MessageId, который представляется идентификатором типа GUID для каждого отдельного сообщения. (Примечание. Это не тот же идентификатор сообщения, который указан в заголовках писем).

2 ответа

Решение

К сожалению, вам в основном не повезло.

ActiveSync - это не протокол интеграции, это протокол мобильной синхронизации, разработанный для устройств связи с низкой пропускной способностью, таких как смартфоны. Многие возможности в EWS не будут существовать в EAS.

Долгосрочная идентификация и корреляция сообщений не так важны для мобильных устройств. Они просто получают сообщение о том, какие сообщения находятся в каждой папке, и позволяют пользователю манипулировать ими. В любое время сервер Exchange может сказать своим клиентам, подключенным к EAS, "выполнить повторную синхронизацию", что заставит их забыть о сообщениях на устройстве и аккуратно извлечь их с сервера. Это часто случается с EAS, иногда пару раз в час, в зависимости от того, что происходит с этим почтовым ящиком. Например, удаление папки через Outlook вызывает FolderSync произойдет, и это заставит подключенные устройства снова выполнить полную синхронизацию.

Поэтому EAS, похоже, оставил позади понятие GUID или других долгосрочных идентификаторов для сообщений. Вместо этого сервер назначит временные идентификаторы, которые действительны только до принудительной следующей большой повторной синхронизации (что может произойти в любое время). Вы, вероятно, увидите, что Exchange дает очень простые идентификаторы, такие как 7:45 (что означает идентификатор сообщения 45 в папке 7, IIRC). Однако после повторной синхронизации, которая может иметь номер 7:32 (если пользователь удаляет другие сообщения в этой папке) или что-то вроде 4:22 (если сообщение полностью перемещено в другую папку).

Другие EAS-серверы, такие как Zimbra, Kerio или Notes Traveler, могут назначать GUID, но из памяти именно так ведет себя Exchange. Единственным вариантом может быть установка собственного скрытого идентификатора корреляции в теле или теме сообщений, которые вас интересуют. Это позволит вам отслеживать жизненный цикл элементов, которые вас интересуют, за счет некоторого странного материал, видимый пользователям в их содержимом сообщения.

@Brian верен - глобальных уникальных идентификаторов для элементов ActiveSync, которые можно использовать для корреляции с EWS, не существует (за некоторыми исключениями, например, приглашение на собрание имеет UID, как и события, которые можно использовать с некоторыми хакерами для получения EWS Идентификатор для связанного события календаря EWS), и нет никаких полей, которые не видны пользователю, которые можно было бы перехватить для добавления ваших собственных данных, с которыми нужно коррелировать. Это наиболее очевидно в электронной почте, контактах, задачах, заметках и т. Д.

Однако, если вы синхронизируете оба, можно использовать метаданные в объектах для сопоставления. Например, для контактов напишите алгоритм хеширования, который объединяет данные из полей имени, фамилии, названия компании и т. Д. И дает результат. Это может быть выполнено для данных с обеих сторон и будет иметь относительно небольшое столкновение объектов для сопоставления (и те, которые сталкиваются, будут иметь точно такие же видимые данные для пользователя в любом случае, так что в большинстве случаев это не будет иметь значения, что вы не сделали получить точное выравнивание)

Другие вопросы по тегам