2013-02-05 27 views
0

我試圖實現一個簡單的同步引擎,它將同步IMAP服務器和我的本地客戶端(由javamail API開發)之間的更改。是否有任何方法來獲取新到達,標誌更改,刪除等更改從服務器的一個查詢與上次更新的日期時間值?例如:在特定的日期時間後更改/更新郵件列表

例如:假設我上次同步時間爲01/03/2013 @ 23.00。

如果我上面的查詢時間後的變化,我期待類似如下:

  • 消息ID:XXXXXXXXX: - 出演
  • 消息ID:YYYYYYYYY: - 刪除
  • 消息ID:ppppppppp - 未讀
  • 消息ID:ppppppppp: - 出演
  • .......
  • .......

或者其他如果你有更好的方法來同步服務器 - 客戶端文件夾,請提及這些。 等待非常快速的迴應。

在此先感謝。 :)

回答

0

簡單的答案是否定的,你不能這樣做與一個查詢。

稍長的答案是,你不想根據日期/時間來做這件事,而是基於消息UID。這將允許您檢測添加/刪除的消息。要檢測郵件標誌的更改,您需要查詢所有郵件的所有標誌,然後將它們與標誌的已保存副本進行比較。

這是離線操作和同步離線操作與服務器上所做更改的一般問題。從RFC 4549開始,然後向後找出如何執行使用JavaMail的操作。

+0

非常感謝你的提示shannon。現在我有了確認的方式繼續。 –