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…
[code]/*
- 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@GMAIL.COM", "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();
}
}[/code]