0

javamail APIによって開発されたimapサーバーとローカルクライアントの間で変更を同期する単純な同期エンジンを実装しようとしています。最後に更新された日時の値に対して、サーバーからの1つのクエリで、新しく到着した、フラグが変更された、削除されたなどの変更を取得する方法はありますか?

例: 前回の同期時刻が 2013 年 1 月 3 日 @ 23.00 だとします。

上記の時間の後に変更をクエリすると、次のようなものが期待されます。

  • メッセージ ID: xxxxxxxxx :- スター付き
  • メッセージ ID: yyyyyyyyy :- 削除済み
  • メッセージ ID: ppppppppp :- 未読
  • メッセージ ID: ppppppppp :- スター付き
  • .......
  • .......

または、サーバー間で同期するためのより良いアプローチがある場合-クライアントフォルダーについても言及してください。非常に迅速な対応を待っています。

前もって感謝します。:)

4

1 に答える 1

0

簡単な答えはノーです。1 つのクエリでそれを行うことはできません。

少し長い答えは、日付/時刻に基づいてこれを行うのではなく、メッセージ UID に基づいて行うことです。これにより、追加/削除されたメッセージを検出できます。メッセージのフラグの変更を検出するには、すべてのメッセージのすべてのフラグを照会し、保存されているフラグのコピーと比較する必要があります。

これは、オフライン操作の一般的な問題であり、サーバー上で行われた変更とオフライン操作を同期させます。RFC 4549から始めて、逆方向に作業して、JavaMail を使用して操作を行う方法を理解してください。

于 2013-02-06T01:15:11.173 に答える