我订阅了一个使用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
我没有运气。我已经google了一下,发现它似乎应该有效one MSDN blog example,但是他有一些我似乎无法找到的课程(比如Microsoft.Exchange.WebServices.SetItemFieldType
课程;我所有的课程都在{ {1}}命名空间是WebServices
和Data
命名空间,没有类或任何东西)。由于我找不到那些类或类似的东西,我有点卡住了。他还列出了一个DAV示例,但是,他的代码再次使用了我在我的EWS dll版本中找不到的类(14.0.0.0)。我尝试从Microsoft下载最新的API,但这似乎与我已有的版本相同。
所以我的问题是,有没有办法使用Exchange 2007 Web服务将项目标记为已读?
答案 0 :(得分:37)
您需要调用tmpMsg.Update方法将更改保留回服务器。