Подтвердить что ты не робот

Отметить сообщение электронной почты как прочитанное с помощью Exchange Web Services 2007

Я подписался на учетную запись электронной почты, используя Exchange Web Services 2007 и обрабатывая вложения, когда появляются новые письма. Я хотел бы отметить эти письма как "прочитанные" на сервере после того, как я их обработаю, но я найти это не так просто, как установить для свойства IsRead значение true. Я даже пробовал следующее:

Dim msg As EmailMessage
msg.Load(New PropertySet({EmailMessageSchema.IsRead}))
msg.IsRead = True

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

Dim iID as ItemId = msg.Id
Dim tmpMsg as EmailMessage = EmailMessage.Bind(service, iID, New PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.IsRead))
tmpMsg.IsRead = True

Мне не повезло. Я искал googled и нашел один пример блога MSDN, который кажется, что он должен работать, но он получил некоторые классы, которые я не могу найти (например, класс Microsoft.Exchange.WebServices.SetItemFieldType; все, что у меня есть в пространстве имен WebServices, - это пространства имен Data и AutoDiscover, классы или что-то еще). И так как я не могу найти эти классы или что-то подобное, я как бы застрял. Он также перечислил пример DAV, но, опять же, его код использует классы, которые я не могу найти в моей версии dll EWS (которая равна 14.0.0.0). Я попробовал загрузить последний API от Microsoft, но это похоже на ту же версию, что и у меня.

Итак, мой вопрос в том, есть ли способ маркировки элемента как прочитанного с помощью веб-служб Exchange 2007?

4b9b3361

Ответ 1

Вам нужно вызвать метод tmpMsg.Update, чтобы сохранить изменения на сервере.