1

JavaMailを使用して特定のフォルダ内のIMAPメールにアクセスするための小さなツールを実装しようとしています。次に、これらのフォルダに新しいメールがあるかどうかを通知します。未読メッセージについて知ることに必ずしも興味があるわけではありません。メッセージは(共有メールボックスのシナリオで)読み取られた可能性がありますが、それでも私にとっては新しい可能性があるためです。

フォルダを読み取って、最新のメッセージのUIDを保存することを考えています。次に、次にチェックするときにそのUIDを比較します。ただし、メッセージリスト全体を調べて日付やメッセージ番号で並べ替えないと、最新のメッセージを見つける方法に関する情報がJavamailのドキュメントに見つかりません。

新しいメッセージを見つけるためのより良い方法はありますか?フォルダ内の最新のメッセージのみが必要であることをJavaMailに伝える簡単な方法はありますか?

4

2 に答える 2

1

an にキャストしてIMAPFolderand を使用getMessagesByUID(long start, long end)LASTUIDます。

于 2012-07-18T17:33:29.690 に答える
0

JavaMail API には検索メカニズムがあります。次のような受信トレイ フォルダを検索できます。

Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.RECENT), true));

受信トレイに未読メッセージのみを提供します。

于 2012-07-19T10:49:58.903 に答える