Foros del Web » Programación para mayores de 30 ;) » Java »

Recibir correos JavaMail

Estas en el tema de Recibir correos JavaMail en el foro de Java en Foros del Web. Hola estoy obteniendo la bendeja de entrada de mis correos de varios dominios, el problema es que solo quiero obtener los correos no leídos, y ...
  #1 (permalink)  
Antiguo 29/09/2011, 17:50
 
Fecha de Ingreso: agosto-2010
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 3
Pregunta Recibir correos JavaMail

Hola estoy obteniendo la bendeja de entrada de mis correos de varios dominios, el problema es que solo quiero obtener los correos no leídos, y obtiene todos.
Pueden ayudarme para que filtre solo los que no se han leído, gracias. Les dejo mi código :)

Primero hago mi conexion

Código:
public boolean connect() throws Exception {
        
    	try{
                logger.info("Making the connection POP3");
                String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
                correct=true;
                Properties pop3Props = new Properties();
                pop3Props.setProperty("mail.pop3.starttls.enable", "false");
                pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
                pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
                pop3Props.setProperty("mail.pop3.port",  "995");
                pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
        
                logger.info("Opening the count "+username);
                URLName url = new URLName("pop3",EmailServer, 995, "",
                        username, password);
                logger.info("Obteniendo la session de pop3");
                session = Session.getInstance(pop3Props, null);
                session.setDebug(true);
                
                logger.info("Obteniendo el store");
                store = new POP3SSLStore(session, url);
                logger.info("Conectando...");
                store.connect();
                logger.info("La conexion es exitosa");
                
                           
    	}catch(Exception e)
    	{
    		logger.error("the connection was not successful ");
                logger.info("La excepcion"+e);
                correct=false;
    	}return correct;
    }


Despues abro el folder, que en ese caso le mando INBOX

Código:
public void openFolder(String folderName) throws Exception {
        
        logger.info("Opening the Folder "+folderName);
        
        folder = store.getDefaultFolder();
        
        folder = folder.getFolder(folderName);
        
        if (folder == null) {
            logger.error("Invalid Folder");
            throw new Exception("Invalid folder");
            
        }
        
        // try to open read/write and if that fails try read-only
        try {
            logger.info("Trying to open read/write folder");
            folder.open(Folder.READ_WRITE);    
            
             } catch (MessagingException ex) {
                 logger.error("The connection read/write fails");
                 logger.info("Trying to open read-only folder");
                 folder.open(Folder.READ_ONLY);
            
        }
    }
En esta parte es cuando obtiene los mensajes, pero me los regresa todos, y solo ocupo los nuevos

Código:
 public void printAllMessages() throws Exception {
     
        // Attributes & Flags for all messages ..
        //Message[] msgs = folder.getMessages();
        Message[]msgs=folder.getMessages();
        // Use a suitable FetchProfile
        
        
        FetchProfile fp = new FetchProfile();
        fp.add(FetchProfile.Item.ENVELOPE);    
        folder.fetch(msgs, fp);
        
        
       
        for (int i = 0; i <msgs.length; i++) {
        	
        		MakeFile();
                        logger.info("--------------------------");
                        logger.info("MESSAGE #" + (i + 1) + ":");
        		//System.out.println("--------------------------");
        		//System.out.println("MESSAGE #" + (i + 1) + ":");
        		dumpPart(msgs[i]);            
        }            
    }

De hecho cuando hago un

return folder.getNewMessageCount();

me devuelve siempre cero, auque haya correo sin leer

Etiquetas: correos, javamail, recibir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:43.