4

i'm understanding javax.mail to read an email account and get all received message. This is an example:

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);    
         }  

My question is:

From Message messages[] is possible to know if a message is new or not? Something like:

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

Can someone help me? Thanks!!!

Jayyrus
  • 12,961
  • 41
  • 132
  • 214
  • see this other question (thou a slightly different, OP code shows how's done http://stackoverflow.com/questions/5366767/retrieve-unread-emails-from-gmail-javamail-api-imap ) – BigMike Jun 27 '12 at 07:24

1 Answers1

7

Put this in your code

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.");

a very good tutorial can be found here

BigMike
  • 6,683
  • 1
  • 23
  • 24