1

IMAPサーバーからメールを取得してローカルデータベースに保存するPHPプロジェクトに取り組んでいます。同じIMAPサーバーを、送信トレイなどの他の電子メールクライアントで使用できます。

問題は、私がすでにフェッチしたメッセージとフェッチしなかったメッセージをどのように知るかです。日時による検索を使用することを考えていますが、信頼性があります(cronjobを使用すると、ユーザーのメールボックスに毎分アクセスしてメールをチェックしますが、日時が問題を引き起こす可能性があるかどうかはわかりません。同時に短いメッセージと大きな添付ファイルのあるメッセージが届きます)。

私はシステムタグについて考えていましたが、ユーザーは電子メールクライアントを介してそれらを変更できるので、私はそれらに頼ることができ、それらを変更してクライアントを混乱させたくありません。

次に、カスタムタグについて考えていましたが、すべてのIMAPサーバーがカスタムタグをサポートしているわけではありません(ソフトウェアは可能な限り柔軟である必要があります)。

この問題をどのように解決できるか良いアイデアはありますか?

4

1 に答える 1

3

同期しているフォルダーの現在同期されている最高のUIDを追跡し、フォルダーのUIDVALIDITY値が一致することを確認します。

メールボックスでは、一意の識別子が厳密に昇順で割り当てられます。各メッセージがメールボックスに追加されると、以前に追加されたメッセージよりも高いUIDが割り当てられます。メッセージシーケンス番号とは異なり、一意の識別子は必ずしも連続しているとは限りません。

于 2012-04-14T05:51:58.660 に答える