Leitura de emails

Pessoal, estou trabalhando em uma aplicação que precisa fazer a leitura de emails tanto POP3 quanto IMAP. Já fiz isso em PHP, mas estou precisando migrar para JAVA, porém sou novo na linguagem e não consegui encontrar algo pra fazer isso.

Alguém poderia me dar uma dica de como eu faço pra acessar os emails ou algo que eu possa usar para isso. Na verdade, nem precisa ler os emails por completo, apenas buscar os cabeçalhos.

Desde já, obrigado!

JavaMail-1.4.4 da uma olhada nessa api!!!

Consegui fazer isso baseado neste codigo que vi em outro fórum

[code]public void recebe() throws NoSuchProviderException, MessagingException {

      Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());     

final String SSL_FACTORY = “javax.net.ssl.SSLSocketFactory”;

Properties props = System.getProperties();
props.setProperty(“mail.pop3.socketFactory.class”, SSL_FACTORY);
props.setProperty(“mail.pop3.socketFactory.fallback”, “false”);
props.setProperty(“mail.pop3.port”, “995”);
props.setProperty(“mail.pop3.socketFactory.port”, “995”);

Session session = Session.getDefaultInstance(props,null);

URLName urln = new URLName(“pop3”,“smtp.gmail.com”,465,null,
"username@gmail.com", “senha”);

Store store = session.getStore(urln); // poderia ser imap também

// conectar a caixa postal
store.connect(mailSMTPServer, from, senha);

Folder fldr = store.getFolder("INBOX");  
         fldr.open(Folder.READ_WRITE);  
         int count = fldr.getMessageCount();  

JOptionPane.showMessageDialog(this, count+" Menssage Inbox", “total messages”, JOptionPane.INFORMATION_MESSAGE);

   for(int i = 1; i <= count; i++) {  
// Get  a message by its sequence number  
             Message m = fldr.getMessage(i);  

             // Get some headers  
             Date date = m.getSentDate();  
             Address [] from = m.getFrom();  
             String subj = m.getSubject();  
             String mimeType = m.getContentType();  
               
             message.setText("REMETENTE: "+from[0].toString()+ "     ASSUNTO: "+subj  );  
                               
               
             System.out.println(date + "\t" + from[0] + "\t" +  
                                 subj + "\t" + mimeType);  
        }  

}[/code]

Neste exemplo, ele verificar o quantidade de email na caixa de entrada,
pra eu ficar recebendo os novos email que chegavam, numa thread fiquei atualizando o Folder que representa sua caixa de entrada
e comparando o valor contador, quando tivesse diferente é por que chegou um novo email, o número do contado será o indice do novo email,
ai você poderá acessa-lo. O email é o objeto Message.

Espero ter ajudado.

Uma outra opção.

Vlws galera… vou fazer os testes aqui e depois coloco o resultado.

Obrigado!