[英]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.