1

有沒有辦法在使用ActiveSync時可以在Exchange EWS中獲得相同的「MessageId」?Exchange EWS MessageId - >在ActiveSync中也可用?

我認爲這是一種Exchange方式來唯一標識每條消息,但似乎無法找到使用ActiveSync檢索它的方法。

編輯:我有2個應用程序,一個使用ActiveSync存儲信息,另一個使用EWS存儲信息,我希望它們能夠單獨處理相同的消息....爲此,我希望使用EWS MessageId,它似乎是每個單獨消息的GUID類型標識符。 (注意:這看起來與郵件標題中的Message-ID不同)。

+0

這是不同於'Message-ID'電子郵件標題? – Charles

+0

是的,它是...我不完全確定它是什麼定義它,但它是不同的。我認爲這是一個交流的事情...... –

回答

3

不幸的是,你大多運氣不好。

ActiveSync不是一個集成協議,它是一個爲智能手機等低帶寬通信設備設計的移動同步協議。 EAS中不存在很多EWS功能。

長期消息識別和關聯對於移動設備並不重要。他們只會被告知每個文件夾中的消息,並允許用戶操縱它們。在任何時候,Exchange服務器都可能會通知其EAS連接的客戶端進行「重新同步」,這會導致他們忘記設備上的消息並將其從服務器上徹底清除。這種情況在EAS中會發生很多,有時甚至每小時會發生幾次,具體取決於該郵箱的情況。例如,通過Outlook刪除文件夾會導致FolderSync發生,並強制連接的設備再次乾淨地重新同步。

因此EAS似乎留下了GUID或消息的其他長期ID的概念。相反,服務器將分配僅在下一個大型再同步被強制(可能在任何時間發生)之前有效的臨時ID。您可能會看到Exchange提供非常簡單的ID,如7:45(這意味着文件夾7中的消息ID 45,IIRC)。但在重新同步後,可能有7:32(如果用戶刪除該文件夾中的其他消息)或類似4:22(如果該消息完全移動到另一個文件夾)。

像Zimbra,Kerio或Notes Traveler等其他EAS服務器可能會分配GUID,但是從內存來看,這是Exchange的行爲方式。您唯一的選擇可能是將您自己的隱藏關聯ID放入您感興趣的消息的正文或主題中。這將允許您跟蹤您感興趣的項目的生命週期,代價是有些奇怪東西在用戶的消息內容中可見。

+0

感謝您的反饋。我從來沒有想過隱藏的關聯ID概念......好電話......我會給它一個鏡頭! –

+0

您在這裏提到「重新同步」,編寫客戶端軟件時究竟是什麼以及如何處理它?我對我是否正確處理EAS重新編號感到困惑,似乎真的是偶然的,沒有固定的ID ...... –

+0

重新同步是一種全新的同步。拋出您已經由服務器發送的數據並重新開始。它什麼時候發生都很糟糕。 –

2

@Brian是正確的 - 沒有全局唯一標識符可用於與EWS關聯的ActiveSync項目(除了一些例外情況,例如會議邀請具有UID,事件可以與一些駭客一起使用檢索相關EWS日曆事件的EWS ID),並且沒有字段對用戶不可見,可以被劫持以添加您自己的要與之關聯的數據。這在電子郵件,聯繫人,任務,筆記等中最爲明顯......但是,如果您同時同時使用這兩個對象,則可以在對象中使用元數據進行匹配。例如,對於聯繫人,編寫一個哈希算法,結合來自名字,姓氏,公司名稱等等字段的數據並生成結果。這可以運行在來自雙方的數據上,並且對於匹配的對象碰撞相對較小(並且那些碰撞的對象將具有與用戶完全相同的可見數據,所以在大多數情況下,沒有關係,你沒有得到一個精確的對齊)