Javamail: можно ли использовать FetchProfile при поиске писем вместо простого извлечения их? - PullRequest
4 голосов
/ 23 августа 2010

Согласно http://java.sun.com/products/javamail/javadocs/javax/mail/FetchProfile.html,

Message[] msgs = folder.getMessages();
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);

Однако, если я хочу получать только прочитанные сообщения с помощью search (), у меня нет возможности указать FetchProfile (поскольку search () не принимает такой параметр).

Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_WRITE);    
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
Message messages[] = inbox.search(ft); //how to specify a FetchProfile here ??

Есть ли другой способ?

Заранее большое спасибо.

1 Ответ

3 голосов
/ 30 августа 2010

Я не верю, что вы можете.

В этом случае JavaMail отражает базовые команды IMAP - сначала вы выясняете набор сообщений, которые вас интересуют, а затем извлекаете данные этих сообщений с помощью отдельной команды. Невозможно заставить сервер IMAP возвращать вам данные в стиле FetchProfile из команды SEARCH, а JavaMail просто соответствует ограничениям IMAP на то, что возвращается, когда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...