2

JavaMailAPIのメッセージ番号がどのように機能するのか疑問に思っています。それらは常に時間でソートされていますか?

私がやろうとしているのは、Gmailフォルダーのヘッダーを再フェッチしないようにすることです。今日処理している20,000件のメッセージを含むフォルダがあるとします。明日は100件の新しいメッセージがあり、20,000個のヘッダーすべてを再度フェッチしたくありません。msgnumsを要求できますか。20,001〜20,100?これは、後でメッセージがフォルダに追加される通常の場合に機能すると思います。しかし、ユーザーがThunderbirdなどのクライアントを使用して、以前の期間の何かを手動でフォルダーに挿入した場合はどうでしょうか。

[s]

4

1 に答える 1

3

メッセージ番号の動作を制御するのはサーバーです。基本的にすべての場合、メッセージ番号はメッセージがメールボックスに追加される順序に対応します。

たとえば、受信トレイでは、これはメッセージが受信される順序です。電子メールクライアントは、送信された順序でメッセージを表示する場合がありますが、これはまったく異なる場合があります。

メッセージはリストから削除される可能性がありますが、既存のメッセージの前にメッセージが挿入されることはありません。新しいメッセージを探している場合は、既存のメッセージが削除された場合に対処し、メッセージ番号を変更する必要があります。

JavaMail UIDFolderインターフェース、およびそれが基づいているIMAP仕様を参照してください。最後に表示したUIDを追跡する場合は、それより大きいUIDを持つメッセージのみを確認する必要があります。詳細はたくさんありますが、それは始まりです。ドキュメントを読んで、質問があれば教えてください。

于 2013-01-23T22:13:20.737 に答える