簡體   English   中英

Gmail也會從已發送郵件中提取郵件

[英]Gmail fetching mails from Sent items as well

我有以下代碼連接到郵件服務器的收件箱:

Store popStore = popSession.getStore("pop3");
popStore.connect(address, userName, password);
Folder  inboxFolder = popStore.getFolder("Inbox");

發布這個我檢查新郵件。 現在,當我連接到Gmail時,我也會收到來自已發送郵件的郵件,而實際上它應該只來自收件箱文件夾。 雅虎這個工作正常。

任何想法可以在Gmail中導致此問題?

編輯:我也試過INBOX,結果是一樣的

以下是代碼段。 當我使用gmail檢查時,收件箱和已發送郵件之間沒有重疊。 (這應該是評論,發布作為格式的答案)

javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder folder : folders) {
    if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
        if (folder.getFullName().equalsIgnoreCase("[Gmail]/Sent Mail") 
                || folder.getFullName().equalsIgnoreCase("Inbox")) {
            System.out.println(folder.getFullName() + ": " + folder.getMessageCount());
            folder.open(Folder.READ_ONLY);
            for (Message m : folder.getMessages(
                               folder.getMessageCount() - 5, 
                               folder.getMessageCount())) {
                System.out.println("m.getSubject() = " + m.getSubject());
            }
            folder.close(true);
        }
    }
}

首先嘗試這個

Folder folder = store.getDefaultFolder();
folder = folder.getFolder("INBOX");
folder.open(Folder.READ_WRITE);

有趣的問題。 我做了一些研究,發現這篇帖子谷歌說:

啟用POP后,除垃圾郵件,已刪除垃圾郵件和聊天記錄外,所有郵件都會下載到您的客戶端。 如果您不希望從Web界面發送的郵件下載到您的郵件客戶端的收件箱,我們建議您在客戶端中創建一個過濾器。

要按發件人創建過濾器,您可以執行以下操作:

String filter = "Not([SenderEmailAddress] = 'XXXXX@gmail.com')";
Items inboxItems = inboxFolder.Items.Restrict(filter);

其中XXXXX@gmail.com是您的電子郵件地址。 此過濾器僅為您提供由您以外的人發送的項目。 此外, Restrict方法可以替換為Find ,但對於較大的數據集, Restrict會快得多。

當您使用回復或回復所有在Gmail中通過郵件進行通信時,它將被視為收件箱郵件。 因為它是會話視圖。 這樣您發送的郵件也是收件箱郵件。 所以你會在郵件中收到郵件。

閱讀官方谷歌答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM