Lendo e-mails

0 respostas
thiagofesta

Olá pessoal...

Gostaria de saber qual a melhor forma de eu poder ler e-mails, eu vi sobre as APIs javamail, e a commons email... pois bem, fiz uns testes com a javamail, achei uns códigos num forúm, só que não consigo ler os anexos, como eu poderia fazer isso?

Vou postar meu código ai que faço a leitura dos e-mails...
/*
 * Ler.java
 *
 * Created on 26/10/2008, 18:20:29
 */

package email;

import javax.mail.Store;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;


/**
 *
 * @author Thiago
 */
public class Ler {

    public Ler() {
        try {
            recebeMSG();
        } catch(Exception e) {
            e.printStackTrace();
        }         
    }

    public void recebeMSG() throws MessagingException {
               
        Properties props = new Properties();
        props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.pop3.socketFactory.fallback", "false");
        props.put("mail.store.protocol", "pop3");
    
        Session session = Session.getDefaultInstance(props,null);
        Store store = session.getStore("pop3");
        
        //Estabelece conexão
        store.connect("pop.gmail.com",995, "[email removido]", "SENHA");
        
        //Obtem a pasta e a abre
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);
        
        //Obtem mensagens
        Message msg[] = folder.getMessages();
        
        for (int i = 0; i < msg.length; i++){
            try {
                System.out.println("MENSAGEM:" + i);
                System.out.println("NOME: " + ((InternetAddress) msg[i].getFrom()[0]).getPersonal() + "\n" +
                                   "FROM: " + ((InternetAddress) msg[i].getFrom()[0]).getAddress());
                System.out.println("DATA DE ENVIO: " + msg[i].getSentDate());
                System.out.println("ASSUNTO "+msg[i].getSubject());
                System.out.println("CONTEUDO " +msg[i].getContent());
                System.out.println("FIM DA MENSAGEM: " + i);
            } catch (MessagingException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
               
        folder.close(false);
        store.close();
    }
    
    public static void main(String[] args) {
        new Ler();
    }
    
}
Criado 26 de outubro de 2008
Respostas 0
Participantes 1