Hola tengo funcionando este código utilizando la API JavaMail
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Clases;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.search.SearchTerm;
/**
*
* @author CASA
*/
public class BuscarCorreos {
String usuario;
String contrasena;
public BuscarCorreos(String usuario, String contrasena) {
this.usuario = usuario;
this.contrasena = contrasena;
inicializar();
}
private void inicializar() {
try {
// Obtenemos las propiedades del sistema
String popHost = "imap.gmail.com";
Properties props = System.getProperties();
// Obtener una sesión con las propiedades anteriormente definidas
Session sesion = Session.getDefaultInstance(props, null);
// Crear un Store indicando el protocolo de acceso y
// conectarse a él
Store store = sesion.getStore("imaps");
store.connect(popHost, usuario, contrasena);
// Crear un Folder y abrir la carpeta INBOX en modo SOLO LECTURA
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
SearchTerm term = new SearchTerm() {
@Override
public boolean match(Message mess) {
try {
return mess.getContent().toString().toLowerCase().indexOf("prueba") != -1;
} catch (IOException ex) {
Logger.getLogger(BuscarCorreos.class.getName()).log(Level.SEVERE, null, ex);
} catch (MessagingException ex) {
Logger.getLogger(BuscarCorreos.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
};
Message[] searchResults = folder.search(term);
for (Message m : searchResults) {
System.out.println("MATCHED: " + m.getFrom()[0]);
}
} catch (MessagingException me) {
System.err.println(me.toString());
}
}
}
La búsqueda cuando la bandeja es pequeña no tiene problemas, pero cuando es una bandeja regular se pone lentísimo,
alguna idea de como realizar la búsqueda con el buscar de gmail? y luego solo traer los resultados
estuve viendo algunas clases dentro de la API como
GmailStore ; GmailFolder ; GmailRawSearchTerm , etc
Si alguien me puede dar una mano con esto se lo agradecería