使用Exchange Web Services 2007将电子邮件标记为已读

mou*_*nty 27 .net exchangewebservices

我订阅了一个使用Exchange Web Services 2007的电子邮件帐户,并在新电子邮件进入时处理附件.我想在处理完这些电子邮件后将其标记为"已读",但我发现它不是就像将"IsRead"属性设置为true一样简单.我甚至尝试过以下方法:

Dim msg As EmailMessage
msg.Load(New PropertySet({EmailMessageSchema.IsRead}))
msg.IsRead = True
Run Code Online (Sandbox Code Playgroud)

我发现如果我想要与消息的某些部分(如附件)进行交互,我必须加载特定的模式属性.我还尝试将消息直接绑定到新对象并加载其他属性:

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

我没有运气.我已经google了一下,发现一个MSDN博客示例似乎应该可以工作,但是他有一些我似乎无法找到的Microsoft.Exchange.WebServices.SetItemFieldType类(比如类;我在WebServices命名空间中得到的只是DataAutoDiscover命名空间,没有课程或任何东西).由于我找不到那些类或类似的东西,我有点卡住了.他还列出了一个DAV示例,但是,他的代码再次使用了我在我的EWS dll版本中找不到的类(14.0.0.0).我尝试从Microsoft下载最新的API,但这似乎与我已有的版本相同.

所以我的问题是,有没有办法使用Exchange 2007 Web服务将项目标记为已读?

Hen*_*use 37

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