2010-08-23 2 views
4

Selon http://java.sun.com/products/javamail/javadocs/javax/mail/FetchProfile.html,Javamail: FetchProfile peut-il être utilisé pour rechercher des mails au lieu de simplement les récupérer?

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

Cependant, si je veux que les messages lus à l'aide de recherche(), je n'ai pas un moyen de spécifier un FetchProfile (comme la recherche() ne prend pas un tel paramètre).

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 ?? 

Y a-t-il un autre moyen?

Merci beaucoup d'avance.

Répondre

3

Je ne crois pas que vous le pouvez. En cela, JavaMail reflète les commandes IMAP sous-jacentes - d'abord vous déterminez l'ensemble des messages qui vous intéressent, puis vous récupérez des données sur ces messages via une commande séparée. Il n'y a aucun moyen de contraindre un serveur IMAP à vous renvoyer des données de type FetchProfile à partir d'une commande SEARCH, et JavaMail se conforme simplement aux contraintes d'IMAP sur ce qui est retourné quand.

Questions connexes