Не удается получить непрочитанные письма из учетной записи hotmail с помощью javamail api
Я пытаюсь написать простую java-программу, которая возвращает мне все непрочитанные письма из моей учетной записи 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);
В чем моя ошибка в этом коде? Потому что я получаю все письма, а не только непрочитанные.
1 ответ:
Цитирую документацию Sun об их связанном поставщике POP3 (который, как я предполагаю, вы используете) - документация находится в /docs / sundocs
POP3 не поддерживает постоянные флаги (см.getPermanentFlags ()). В в частности, флаги.Флаг.Недавний флаг никогда не будет установлен для POP3 сообщения. Это зависит от приложения, чтобы определить, какие сообщения в Почтовый ящик POP3-это "новый". Существует несколько стратегий для достижения этой цели это, в зависимости от потребностей применение и окружающая среда: A простой подход состоял бы в том, чтобы отслеживать последнее сообщение, увиденное приложение. Альтернативой было бы следить за потоками жидкости (смотрите ниже) всех сообщений, которые были замечены. Другой подход-это чтобы загрузить все сообщения в локальный почтовый ящик, чтобы все сообщения в почтовый ящик POP3 по определению является новым. Все подходы будут требовать некоторое постоянное хранилище, связанное с клиентом.
Я думаю, что это в значительной степени отвечает вашим Вопрос