Я хотел бы сохранить логическое свойство по электронной почте. Если пользователь нажал на кнопку добавления, я бы хотел отметить выбранное письмо как обработанное. Использование UserProperties класса MailItem обновит его в локальной папке.

  1. Не на сервере Exchange, верно?
  2. Если я хочу предотвратить повторную операцию над той же почтой, скажем, после переустановки Outlook или использования того же профиля Outlook на другом компьютере, что мне следует сделать, чтобы избежать этого?

Большое спасибо

1
Moshe HAYUN 15 Авг 2019 в 14:28

2 ответа

Лучший ответ

К любому свойству, которое вы читаете или устанавливаете с помощью объектной модели Outlook, вы можете получить доступ с помощью EWS. Значения пользовательских свойств Outlook хранятся как обычные именованные свойства MAPI; они хранятся на элементах на сервере, а не только локально.

Вам просто нужно запросить расширенное свойство при чтении данных. См. https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/dd633697(v%3Dexchg.80 ).

Вы можете просмотреть существующие свойства и их значения в OutlookSpy - нажмите кнопку IMessage, чтобы просмотреть свойства в MAPI уровень (вы также можете увидеть имена свойств DASL, которые вам понадобятся в EWS). Или нажмите EWS | GetItem, чтобы увидеть данные на уровне EWS.

0
Dmitry Streblechenko 23 Авг 2019 в 20:37

Не на сервере Exchange, верно?

Это зависит от режима соединения Exchange, используемого в профиле - кэшированный или нет. В случае не кэшированного режима ваши изменения распространяются на серверную часть. Если вы находитесь в режиме кэширования, ваши изменения сохраняются в локальном хранилище, пока вы / Outlook не синхронизируете свои изменения с сервером. Вы можете запустить такие операции программно, см. Как: программно выполнять отправку / получение в Outlook для получения дополнительной информации.

Если я хочу предотвратить повторную операцию над той же почтой, скажем, после переустановки Outlook или использования того же профиля Outlook на другом компьютере, что мне следует сделать, чтобы избежать этого?

Я бы предложил создать автономный веб-сервис, в котором вы можете передать идентификатор сгенерированного элемента (например, хэш) и проверить, нужно ли добавлять свойство пользователя, чтобы избежать дублирования. Или просто используйте EWS для проверки, установлено ли свойство уже или нет.

0
Eugene Astafiev 15 Авг 2019 в 12:17