Нахождение определенной непрочитанной почты из списка писем с использованием Javamail - PullRequest
0 голосов
/ 01 августа 2011

МОЙ подход -

  1. Получить полный список рассылки -

    List<Message> totalMessageList = Arrays
                .asList(folder.getMessages());
    
  2. Создайте список из этого, который имеет только непрочитанные письма. (Мне пришлось сделать это, потому что я не смог найти какой-либо прямой API для получения списка новых писем. Один вопрос, который помог выяснить, является ли сообщение непрочитанным или нет, был опубликован здесь )

    List<Message> unreadMessageList = new ArrayList<Message>();
    

    Ради краткости я не опубликовал всю логику построения списка непрочитанных писем из списка общих писем.

  3. Перебирать список непрочитанных писем> Проверить, есть ли у какого-либо письма желаемая тема, затем прочитать содержимое письма> Если такого письма не найдено, бросить IllegalStateExcepton

Теперь мой вопрос - могу ли я улучшить этот подход?

1 Ответ

1 голос
/ 01 августа 2011

Можете ли вы использовать

Folder.search(SearchTerm): Message[]

http://javamail.kenai.com/nonav/javadocs/javax/mail/Folder.html#search%28javax.mail.search.SearchTerm%29

с соответствующим поисковым запросом, например, FlagTerm для непрочитанного флага

http://javamail.kenai.com/nonav/javadocs/javax/mail/search/FlagTerm.html

Быстрый поиск в Google нашел это

http://www.java2s.com/Code/Java/Email/Searchthegivenfolderformessagesmatchingthegivencriteria.htm

, что может быть полезно, но я не пробовал

...