まず、IMAPでは、FETCH BODYSTRUCTURE
を意味する要件はありません。 添付ファイル付きの完全なメッセージデータを転送します。仮定が間違っているか、IMAPライブラリに重大なバグがあるか、ここで間違った関数を使用しています。
次に、UIDを追跡することについて言及しましたが、UIDVALIDITY
については何も述べていません。 。 RFC3501
を読む それが何を意味するのかを理解する。プロトコルを知らずにIMAPを正しく話すアプリケーションを実装する方法はありません。その他のポインタは、 RFC4549
にも記載されています。 。
3番目の質問は、削除または移動されたアイテムを要求することです。ベースラインIMAPでは、それを行うことはできません。削除されたメッセージと新着メッセージを知る唯一の方法は、UIDを明示的に追跡することです-UIDVALIDITY
与えられて変更されなかった場合は、前回以降のUIDのリストを現在取得しているものと比較し、どれが新しく、どれがなくなっているかを確認します。繰り返しになりますが、RFCを読んでください。RFCには、すべての質問に対する回答と、同期プロセスを最適化する方法に関する提案が含まれています。 IMAPに関する論文
もあります。 これは、プロトコルチャットをさらに改善する方法と、関連する拡張機能についてさらに詳しく説明しています。ただし、これは簡単なプロジェクトではありません。