Hola a todos y desde ya gracias.
Tengo un problema con IMAP, estoy desarrollando una aplicación para leer mails desde una aplicación java de escritorio, puedo leer los mails marcados como leídos y los marcados como no leídos pero no me los diferencia, o sea me los muestra todos juntos, el único dato que puedo obtener de los no leídos es la cantidad, lo que yo quiero es por ejemplo que solo me muestre los mensajes NO leídos y por otra parte solo los mensajes Leídos pero no logro realizar esto.
Y también me gustaría poder ordenar los mensajes por fecha.
Estaré muy agradecido si me pueden ayudar con el tema.
Les dejo mi código:
public class RecibirMail
{
/**
* main de la clase.
* @param args Se ignoran
*/
public static void main(String[] args)
{
// Se obtiene la Session
Properties prop = new Properties();
prop.setProperty("mail.imap.starttls.enable", "false");
prop.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.imap.socketFactory.fallback ", "false");
prop.setProperty("mail.imap.port", "993");
prop.setProperty("mail.imap.socketFactory.port", "993");
Session sesion = Session.getInstance(prop);
try
{
// Se obtiene el Store y el Folder, para poder leer el
// correo.
Store store = sesion.getStore("imap");
store.connect("imap.gmail.com", "[email protected]", "password");
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
// Se obtienen los mensajes.
Message[] mensajes = folder.getMessages();
int NoLeidos=store.getFolder("INBOX").getUnreadMessage Count();
System.out.println("cantidad de mensajes: "+mensajes.length);
System.out.println("cantidad de mensajes no leidos: "+NoLeidos);
// Se escribe from y subject de cada mensaje
for (int i = 0; i < mensajes.length; i++)
{
System.out.println("Subject:" + mensajes[i].getSubject());
System.out.println("Mensaje " + i + ":\n" +
"\tAsunto: " + mensajes[i].getSubject() + "\n" +
"\tRemitente: " + mensajes[i].getFrom()[0] + "\n" +
"\tFecha de Envío: " + mensajes[i].getSentDate() + "\n" +
"\tContenido: " +mensajes[i].getAllHeaders () .toString() + "\n");
}
folder.close(false);
store.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Desde ya muchas gracias.