我試圖在Exchange Online帳戶(即沒有Office的Office 365)中的文件夾之間移動郵件。EWS MoveItem - 檢索新項目ID
這可以(並根據我的觀察)導致消息ItemId值發生變化。
根據對移動選項的文件,有一個XML標籤,ReturnNewItemIds將要返回的新項目Id值AKS:
http://msdn.microsoft.com/en-us/library/exchange/aa564512(v=exchg.150).aspx
由Exchange在線爲支持此標籤記載:
http://msdn.microsoft.com/en-us/library/exchange/ff709497(v=exchg.150).aspx
當我包括我的要求這個標籤時,服務器總是返回HTTP狀態代碼500,內部服務器錯誤(這是我見過的手段它不喜歡這個請求)。
刪除ReturnNewItemIds標記使操作成功,但我當然不會獲得新的ItemId值。
這是一個示例請求:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<MoveItem
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ToFolderId>
<t:FolderId Id="...[snip]...AAUBzh5AAA="/>
</ToFolderId>
<ItemIds>
<t:ItemId Id="...[snip]...da2BGjjDAAAUBziGAAA=" />
</ItemIds>
<ReturnNewItemIds>true</ReturnNewItemIds>
</MoveItem>
</soap:Body>
</soap:Envelope>
我已經嘗試了不同的方式來指定ReturnNewItemIds,資金真,只包括標籤......沒什麼區別。可以肯定的是,上面顯示的方式是正確的 - 這是記錄的內容,它也通過了XML模式驗證。
我可以通過多種方法解決此問題以獲取新的ItemId值,但他們需要額外的EWS操作,這是時間和流量消耗。
有沒有人遇到過這個?
這可能是Exchange Online的特定問題嗎?有關ExchangeOnline支持的文檔可能是錯誤的?
或者我錯過了什麼,並有一種方法來獲取ReturnNewItemIds做它的事情?
我的測試環境是包含請求的XML文件和設置正確HTTP選項的shell腳本。與我需要執行的任何其他EWS請求沒有任何問題。
謝謝邁克爾。它還要求源ItemId的格式爲EwsId(而不是EwsLegacyId格式)......但如果它們是,它就可以正常工作。 –