4

我正在理解 javax.mail 以阅读电子邮件帐户并获取所有收到的消息。这是一个例子:

Properties properties = System.getProperties();  
         properties.setProperty("mail.store.protocol", "imaps");  
             try {  
                 Session session = Session.getDefaultInstance(properties, null);
                 //create session instance
                 Store store = session.getStore("imaps");//create store instance  
                 store.connect("pop.gmail.com", "mail@gmail.com", "***");  
                 //set your user_name and password 
                 System.out.println(store);   
                 Folder inbox = store.getFolder("inbox");
                 //set folder from where u wants to read mails  
                 inbox.open(Folder.READ_ONLY);//set access type of Inbox  
                 Message messages[] = inbox.getMessages();// gets inbox messages

                 for(Message message:messages) {
                 System.out.println(message.getContent().toString());  
             }
                 store.close();
              } catch (Exception e) {  
             System.out.println(e);    
         }  

我的问题是:

Message messages[]是否可以知道消息是否是新消息?就像是:

for(Message message: messages){
   if(message.isNew()) OR if(!message.isRead()){
      System.out.println("Message is not still read");
   }
}

有人能帮我吗?谢谢!!!

4

1 回答 1

7

把它放在你的代码中

Folder inbox = store.getFolder("inbox");
inbox.open(Folder.READ_ONLY);
// search for all "unseen" messages
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
Message messages[] = inbox.search(unseenFlagTerm);


if (messages.length == 0) System.out.println("No messages found.");

一个很好的教程可以在这里找到

于 2012-06-27T07:25:57.160 回答