2011-07-27 89 views
27

我訂閱了使用Exchange Web Services 2007的電子郵件帳戶,並在新電子郵件進入時處理附件。我希望在服務器上將這些電子郵件標記爲「已讀」我正在處理它們,但是我發現它並不像將「IsRead」屬性設置爲true那麼簡單。我甚至已嘗試以下步驟:使用Exchange Web Services 2007將電子郵件標記爲已讀

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名稱空間中獲得的所有名稱是DataAutoDiscover名稱空間,沒有課程或任何東西)。而且因爲我找不到那些類或類似的東西,所以我被卡住了。他還列出了一個DAV例子,但是,他的代碼再次使用了我在我的EWS dll版本(14.0.0.0)中找不到的類。我嘗試從微軟下載最新的API,但這似乎與我已有的版本相同。

所以我的問題是,有沒有使用Exchange 2007 Web服務將項目標記爲已讀取的方法?

回答

37

您需要調用tmpMsg.Update方法以將更改保留回服務器。

+1

令人難以置信 - 就是這樣。謝謝! – mounty

相關問題