2011-01-09 22 views
0

gmailにアクセスして受信トレイを読むためにgroovyを使用しています。これは通常のJavaMailであり、ここでは説明しません。私は、ストアに接続した後、groovy(Java Mail)で電子メールを読む

そう簡単にするために、私はこれを使用します。

folder.open(Folder.READ_ONLY) 

folder.messages.each { msg -> 
    ... 
    doSomething with msg 
... 
} 

これが正常に動作しています。

しかし、私はパフォーマンスの問題があります。メッセージが大きくなることがあります。一部のフォルダには1000を超えるメッセージが含まれており、すべてのメッセージに時間がかかります。

私は、各MSGで日付情報を持っているもちろん

、最新の(最後の5日間またはそのような何かから例えばメッセージ)あるのみメールを取得するための迅速な方法を探しています私は比較をすることができますが、これはコレクション全体をループするので効率的ではありません。

これらのメッセージを受け取る良い方法はありますか?

答えて

1

SINCE 04-JAN-2011というコマンドでSEARCHコマンドを発行した場合、現在選択されている1月4日以降に配信されたフォルダにメッセージが戻されます。 (SENTSINCE 04-JAN-2011は唯一の「日付」メッセージヘッダに基づいて、同じことを行います。)は、この線に沿って

何か:それは働いた

folder.search(new ReceivedDateTerm(ComparisonTerm.GE, sinceDate)); 
+0

を、おかげでたくさん、私はこの機能を知りませんでした。私はそれを測定していないにもかかわらず、速度の顕著な増加がありますが、それは明らかです。再度、感謝します :-) –

関連する問題