Puis-je effectuer une recherche sur le serveur de messagerie en Java?

Je suis en train d'effectuer une recherche de mon gmail à l'aide de Java. Avec JavaMail je peux faire un message par la recherche de messages comme:

Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "myUsername", "myPassword");

Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);

SearchTerm term = new SearchTerm() {
  @Override
  public boolean match(Message mess) {
    try {
      return mess.getContent().toString().toLowerCase().indexOf("boston") != -1;
    } catch (IOException ex) {
      Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (MessagingException ex) {
      Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex);
    }
    return false;
  }
};

Message[] searchResults = inbox.search(term);
for(Message m:searchResults)
  System.out.println("MATCHED: " + m.getFrom()[0]);

Mais cela nécessite le téléchargement de chaque message. Bien sûr, je peux mettre en cache tous les résultats, mais cela devient un stockage préoccupation avec de grandes boîtes gmail et aussi serait très lent (je peux seulement imaginer combien de temps il faudrait à la recherche par le biais de giga-octets de texte...).

Donc ma question est, est-il un moyen de recherche par le biais de mail sur le serveur, à la manière de gmail champ de recherche? Peut-être par le biais de Microsoft Exchange?

Heures de Googler a n'ont rien révélé.

OriginalL'auteur smurthas | 2010-03-09