[英]Get only unseen mails from Gmail - imap
我有這個代碼:
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "imaps");
try(Store store = Session.getDefaultInstance(properties, null).getStore("imaps")){
store.connect("imap.gmail.com", 993, username, password);
Folder inboxFolder = store.getFolder("INBOX");
try(inboxFolder){
//open folder
inboxFolder.open(Folder.READ_WRITE);
//get messages
Message[] messages = inboxFolder.search(new FlagTerm(new Flags(Flags.Flag.RECENT), true));
Arrays.stream(messages)
.forEach(message -> {
try{
System.out.println(message.getSubject());
}catch(Exception e){ e.printStackTrace(); }
};
}
}catch(Exception e){
e.printStackTrace();
}
我嘗試從 GMail 的收件箱中讀取所有看不見的郵件。
但在控制台中沒有打印任何內容, messages.length
為 0。
我如何閱讀看不見的郵件?
PS:我剛剛打印了所有消息的標志(與標志無關),我意識到看不見的消息沒有標志。 這就是它應該的樣子?
PS:我發現了。
Message[] messages = inboxFolder.search(
new FlagTerm(new Flags(Flags.Flag.SEEN), false)
);
有了這個作品: new FlagTerm(new Flags(Flags.Flag.SEEN), false)
我找到了解決方案。
代替
new FlagTerm(new Flags(Flags.Flag.RECENT), true)
我需要這樣做
new FlagTerm(new Flags(Flags.Flag.SEEN), false)
獲取看不見的消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.