2017-06-12 216 views
3

我一直在使用java郵件(POP3客戶端& IMAP)來自動執行Gmail操作。其中一個操作是刪除郵件和我使用下面的代碼 -如何使用Java郵件在Gmail中永久刪除電子郵件(POP3客戶端和IMAP)

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

不幸的是,這是一個多步驟的過程,需要使用IMAP而不是POP完成。要永久刪除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.首先,我們將郵件從**收件箱**移至**垃圾箱**,2.將郵件從**所有郵件**移至**垃圾箱**,最後我們將郵件從* *垃圾箱**文件夾。現在它工作正常。 –

+0

@Max你可以分享代碼片段嗎? 我似乎在做你所描述的......但我的信息留在垃圾箱裏。 – klubi

0

可能您會在您的Gmail帳戶設置中解決此問題。

的Gmail具有設置頁下面的選項,轉發和POP/IMP標籤:

當被刪除,而從最後IMAP資料夾刪除標記的消息:

  • 存檔消息(默認)
  • 將消息移至垃圾箱
  • Immed親愛的刪除郵件永遠

嘗試在您的帳戶中設置最後一個選項(立即刪除郵件永遠)並再次運行您的代碼。

祝你好運。

+0

以我的經驗,儘管有措辭,但這種設置實際上並沒有改變任何東西。 – Max

+0

@達尼洛感謝您寶貴的建議,我試過這個,但它不工作。 –

相關問題