2017-06-12 27 views
3

Gmailの操作を自動化するためにJavaメール(POP3クライアント& IMAP)を使用しています。操作の一つは、メールを削除することであり、私は次のコードを使用 -Javaメール(POP3クライアントとIMAP)を使用してGmailでメールを永久に削除する方法

public void deleteInboxMasseges() throws IOException, MessagingException 
{ 
    store = getConnection(EMAIL_USERNAME, EMAIL_PASSWORD); 
     if (store != null) 
     { 
      int inboxMassegeCount = inbox.getMessageCount(); 
      Message[] messages = inbox.getMessages(); 
      for (int i = 0; i < inboxMassegeCount; i++) 
      { 
       messages[i].setFlag(Flags.Flag.DELETED, true); 
      } 
      inbox.expunge(); 
     } 
    } 

メール「受信トレイ」から削除されますが、「ゴミ箱」フォルダ内の「すべてのメール」で入手可能な唯一されていません。私はそれを永久に削除したい。 「受信ボックス」からメールを削除するのではなく、メールを永久に削除する方法はありますか?

答えて

3

残念ながら、それは複数段階のプロセスであり、POPではなくIMAPを使用して行う必要があります。 GMailから何かを完全に削除するには、それをゴミ箱に移動してゴミ箱から削除する必要があるようです。これはMOVE拡張をサポートしていますので、これはそれほど悪くありません。ローカライズされているので、おそらくLISTを使用してごみ箱のフォルダ名を検出する必要があります。

a001 UID MOVE xxx "[Gmail]/Trash" 
* OK [MOVEUID xxxxxxx yyy] Message moved 
a002 SELECT "[Gmail]/Trash" 
a003 UID STORE yyy +FLAGS (\Deleted) 
a004 UID EXPUNGE yyy 

それから本当に消えてしまいます。

ほとんどのユーザーにとって、ゴミ箱に移動するだけで十分です。後でそれ自体消えてしまいます。

+0

** @ Max **ご意見ありがとうございます。私たちはあなたのインプットに基づいて、私のためにうまく動作しました。私たちが試したシナリオをベローズ1.まず、** Inbox **を**ゴミ箱**フォルダに移動しました。2. **すべてのメール**を**ゴミ箱**に移動しました。最後に、 *ゴミ箱フォルダ。今はうまく動作します。 –

+0

@Maxでコードスニペットを共有できますか? 私はあなたが描いていることをしているようです...しかし、私のメッセージはごみ箱にとどまります。 – klubi

0

おそらく、あなたのGmailアカウント設定でこの問題を解決します。

Gmailは設定ページ、転送とPOP/IMP]タブで、次のオプションがあります。最後の目に見えるIMAPフォルダから削除と抹消などのメッセージがマークされている場合

を:

  • メッセージをアーカイブする(デフォルト)
  • メッセージをゴミ箱に移動
  • Immedメッセージを永久に削除する

アカウントの最後のオプション(すぐにメッセージを永久に削除する)を設定して、再度コードを実行してみてください。

幸運。

+0

私の経験上、その設定は言葉にもかかわらず、実際には何も変わりません。 – Max

+0

@ダニロあなたの貴重な提案をありがとう、私はこれを試みたが、動作していない。 –

関連する問題