简体   繁体   中英

Marking an email message as read using Exchange Web Services 2007

I am subscribed to an email account using Exchange Web Services 2007 and processing attachments as new emails come in. I would like to mark those emails as "read" on the server after I'm done processing them, but I'm finding it's not as simple as setting the "IsRead" property to true. I've even tried the following:

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

I tried this after finding out that I had to load specific schema properties if I wanted to interact with certain parts of the message (like attachments). I've also tried directly binding the message to a new object and loading additional properties:

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

I'm getting no luck. I've googled around and found one MSDN blog example that seems like it should work, but he's got some classes that I can't seem to find (like the Microsoft.Exchange.WebServices.SetItemFieldType class; all I've got in the WebServices namespace are the Data and AutoDiscover namespaces, no classes or anything). And since I can't find those classes or anything similar I'm kinda stuck. He also listed a DAV example but, again, his code uses classes I can't find in my version of the EWS dll (which is 14.0.0.0). I tried downloading the latest API from Microsoft but that seemed to be the same version as what I already have.

So my question is, is there a way of marking an item as read using Exchange 2007 Web Services?

您需要调用tmpMsg.Update方法将更改保留回服务器。

EmailMessage.Update()必须在使用EmailMessage.Move()之前调用,因为这会创建一个具有新 ID 的新项目并删除原始项目。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM