【发布时间】:2011-10-14 07:43:07
【问题描述】:
我使用 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
我运气不好。我搜索了一下,发现one MSDN blog example 似乎应该可以工作,但是他有一些我似乎找不到的类(比如Microsoft.Exchange.WebServices.SetItemFieldType 类;我在WebServices 命名空间中得到的所有内容都是Data 和 AutoDiscover 命名空间,没有类或任何东西)。而且由于我找不到这些课程或任何类似的东西,我有点卡住了。他还列出了一个 DAV 示例,但同样,他的代码使用了我在我的 EWS dll 版本(即 14.0.0.0)中找不到的类。我尝试从 Microsoft 下载最新的 API,但它似乎与我已有的版本相同。
所以我的问题是,有没有办法使用 Exchange 2007 Web 服务将项目标记为已读?
【问题讨论】: