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 に答える