Примечание: добавлено после ответа: Спасибо.. Да, я попробовал флаг Flags.SEEN для true и saveChanges. Я также прочитал getContent, который он читал. Я попытался использовать его в инструкции for, которая проходит через сообщения. Но я снова получил сообщения из папки в следующем цикле. Я предполагал, что папка была вживую, поэтому хватала содержимое, а затем снова извлекала сообщения из папки с фильтром, чтобы не получить видимых результатов, но я все еще получал то же сообщение. Я мог бы попытаться закрыть папку и снова открыть ее в качестве теста, чтобы увидеть, отмечена ли она. Также, если я перейду к своему клиенту и нажимаю сообщение, тогда мой код перестает видеть его даже в цикле, поэтому я надеялся сделать то же самое в коде.
оригинал: Я использую javamail для получения электронной почты из учетной записи gmail, она отлично работает, когда я получаю сообщение, которое я хотел бы пометить как прочитанное, может ли кто-нибудь дать мне какое-то направление? Вот мой текущий код:
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", eUserName, ePassWord);
// Get folder
Folder folder = store.getFolder("INBOX");
if (folder == null || !folder.exists()) {
return null;
}
folder.open(Folder.READ_ONLY);
// Only pull unread
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
Message messages[]; // = folder.search(ft);
for(int x = 0; x < timeOutInSeconds; x++) {
log.reportMessage("looking for emails");
try {
folder.getMessages();
messages = folder.search(ft);
if (messages.length > 0) {
for (Message message : messages) {
//log.reportMessage("found message: should not see again, marking read");
// want to mark as read
}
}
Thread.sleep(1000);
}
catch(Exception ex) {
}
}
// Close connection
folder.close(false);
store.close();
return null;
}
catch (NoSuchProviderException ex) {
return null;
}
catch (MessagingException ex) {
return null;
}
}