2012-06-28 3 views
2

Я пытаюсь написать простую java-программу, которая возвращает мне все непрочитанное письмо из моей учетной записи hotmail с помощью javamail api. Это код, который я использую:Не удается получить непрочитанные письма из учетной записи hotmail с помощью javamail api

 String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; 
    Properties props = new Properties(); 
    props.setProperty("mail.pop3.ssl.enable", "true"); 
    props.setProperty("mail.pop3s.socketFactory.class", SSL_FACTORY); 
    props.setProperty("mail.pop3s.socketFactory.fallback", "false"); 
    props.setProperty("mail.pop3s.port", "995"); 
    props.setProperty("mail.pop3s.socketFactory.port", "995"); 
    Session session = Session.getInstance(props, 
     new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(username, password); 
      } 
     }); 
     Store store = session.getStore("pop3"); 
     store.connect("pop3.live.com", username, password); 
     System.out.println(store); 

     Folder inbox = store.getFolder("Inbox"); 
     inbox.open(Folder.READ_ONLY); 
     FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
     Message messages[] = inbox.search(ft); 

Какая у меня ошибка в коде? Потому что я получаю все письма, а не только непрочитанные.

+0

вы находите любой метод, как getUnread() из папки Входящие. –

+0

yes есть метод, который можно назвать inbox.getUnreadMessageCount(); – yashdosi

ответ

2

Цитируя документации Sun, об их комплектного поставщика POP3 (который я предполагаю, что вы используете) - документация находится в/Docs/sundocs

POP3 поддерживает нет постоянных флагов (см Folder.getPermanentFlags ()). В значении флаг Flags.Flag.RECENT никогда не будет установлен для сообщений POP3 . Приложение должно определить, какие сообщения в почтовом ящике POP3 являются «новыми». Существует несколько стратегий для достижения , в зависимости от потребностей приложения и окружающей среды: простой подход заключается в том, чтобы отслеживать самое новое сообщение, которое видит приложение . Альтернативой будет отслеживание UID (см. Ниже) всех сообщений, которые были просмотрены. Другим подходом является , чтобы загрузить все сообщения в локальный почтовый ящик, чтобы все сообщения в почтовых ящиках POP3 по определению были новыми. Для всех подходов потребуется некоторое постоянное хранилище, связанное с клиентом.

Я думаю, что в значительной степени отвечает на ваш вопрос

Смежные вопросы