Я хотел бы сохранить логическое свойство по электронной почте. Если пользователь нажал на кнопку добавления, я бы хотел отметить выбранное письмо как обработанное. Использование UserProperties класса MailItem обновит его в локальной папке.
- Не на сервере Exchange, верно?
- Если я хочу предотвратить повторную операцию над той же почтой, скажем, после переустановки Outlook или использования того же профиля Outlook на другом компьютере, что мне следует сделать, чтобы избежать этого?
Большое спасибо
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.
Не на сервере Exchange, верно?
Это зависит от режима соединения Exchange, используемого в профиле - кэшированный или нет. В случае не кэшированного режима ваши изменения распространяются на серверную часть. Если вы находитесь в режиме кэширования, ваши изменения сохраняются в локальном хранилище, пока вы / Outlook не синхронизируете свои изменения с сервером. Вы можете запустить такие операции программно, см. Как: программно выполнять отправку / получение в Outlook для получения дополнительной информации.
Если я хочу предотвратить повторную операцию над той же почтой, скажем, после переустановки Outlook или использования того же профиля Outlook на другом компьютере, что мне следует сделать, чтобы избежать этого?
Я бы предложил создать автономный веб-сервис, в котором вы можете передать идентификатор сгенерированного элемента (например, хэш) и проверить, нужно ли добавлять свойство пользователя, чтобы избежать дублирования. Или просто используйте EWS для проверки, установлено ли свойство уже или нет.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.