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?
The Bottom Line In short, Exchange Web Services is an API that allows you to access your Microsoft Exchange data. Conversely, OWA is a web-based application that lets you access your Microsoft mailbox online. Both tools help you interact with your Exchange data, but EWS gives you more flexibility overall.
Exchange Web Services (EWS) is an application program interface (API) that allows programmers to access Microsoft Exchange items such as calendars, contacts and email.
You need to call the tmpMsg.Update method to persist changes back to the server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With