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();
}
}