簡體   English   中英

僅從 Gmail 獲取看不見的郵件 - imap

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

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