2017-06-06 6 views
0

JavaMail API Imapプロトコルを使用してすべてのGmailメールを取り出し、テーブル形式で表示しましたが、問題を表示する方法が問題になりましたか?クリックすると メールが削除され、プロトコルを使用しているすべての接続が失われ、そのメールを削除します。Gmailのメールを同期する

答えて

0

サーバーへの接続が失われると、実質的に「切断済み」モードで動作しています。 JavaMail FAQには、how to handle disconnected mode with IMAPに関する詳細情報へのポインタがあります。これをうまくやることはたくさんの仕事です。

より簡単なアプローチは、少なくとも30分ごとにFolder.getMessageCountを呼び出すなど、接続が不必要に失われないようにすることです。それでも接続が失われた場合(になることがあります)、 は、キャッシュされたすべてのデータを投げて再接続し、ユーザーの表示を更新します。

ユーザーが見ることのできるメッセージを削除できるように気を付けるだけでは、中間的なアプローチをとることができます。すべてのメッセージ(およびフォルダのUIDVALIDITY)のUIDを保存して、接続が失われたときに再接続し、get the Message objects for all messages based on UIDを保存することができます。その後、メッセージがサーバー上にまだ存在する場合、そのメッセージを削除することができます。

+0

ありがとうございました!助けを求めて私が削除したいメッセージのように思っていたもの私はそのメールの日付とIMAPコードを送信します。私はそのメールフラグを削除しますenable – Yash

+0

私は分かりません。 –

+0

私はgmailサーバーとの接続を失ったと仮定してクリックしたとき、私は受信したメールの日付と正確な時刻を転送しますが、今度は接続を確立しますが、今度は同じ時刻と日付のメールのみがフェッチされ、そのメールのために有効になっているので、メールは削除されます。 – Yash

関連する問題