2009-04-20 50 views
5

我們使用Exchange 2007 WS來處理郵件文件夾,如果我們嘗試轉發我們已收到的郵件,它們會遇到各種問題。我們的流程是:Exchange WS'在商店中找不到指定的對象。'錯誤

  • Windows Service監視郵箱文件夾,在查找新郵件時,我們處理信息並將項目移動到「已處理文件夾」並存儲Exchange郵件ID。
  • 用戶可以選擇在外部轉發郵件。我們使用Exchange API使用我們之前存儲的消息ID來查找該項目,然後再次使用API​​轉發。

除了再次查找郵件證明相當片狀。我們經常會收到以下錯誤:

The specified object was not found in the store.

有沒有更好/更可靠的方法我們可以達到同樣的效果? Exchange WS的文檔相當稀少。

回答

3

您是否保存新找到的消息的消息ID或消息移動到「Processed」文件夾後?當它移動到一個新的文件夾時,id會改變。

Inside Microsoft Exchange Server 2007 Web Services中推薦的方法是獲取新發現項目的PR_SEARCH_KEY(0x300B,二進制),然後將其移至「已處理」文件夾。然後,您可以在基於PR_SEARCH_KEY的新文件夾中搜索它並獲取新的Message ID以轉發它。

1

我寫了一個程序,讀取收件箱中的電子郵件下載附件到指定的文件夾,寫入電子郵件信息和保存的數據庫路徑,最後刪除電子郵件。我運行這個程序作爲一個Windows服務。在所有測試完成後,我將這個程序運行到主服務器並運行它。程序運行成功,但有時我得到了這個錯誤。我檢查了一切,最後發現我忘記了在我的電腦上停止服務。 2個程序在我的電腦和真實服務器上運行,同時檢查同一個郵箱。 如果出現此錯誤,請確保只有一個程序可以在同一個郵箱中處理。

2

我得出結論,這發生在我身上的原因是,當我的應用程序正在處理電子郵件時,其他人正在同時處理電子郵件。

所以爲了解決這個問題,我把它放在一個try catch中的代碼中,看看這個異常是否是==那個對象在商店中找不到,如果是這樣的話,我只需跳過它並轉到下一個項目。所以沒有問題。