Boa noite
Estou precisando coletar os e-mail de uma caixa postal e inserir num banco de dados, fiz um sistema bem simples para isso porem estou com problemas para fazer o parse da mensagem. Alguém tem uma solução mais inteligente ? Após uma pesquisa achei um software(email2db) que já faz isso e parece uma boa solução.
De qualquer forma segue abaixo o código que escrevi.
Obrigado.
public void teste() throws NoSuchProviderException, MessagingException, IOException{
Properties props = new Properties();
props.put("mail.pop.host", POP_HOST_NAME);
props.put("mail.pop.auth", "true");
props.put("mail.store.protocol", "pop3");
Session session = Session.getDefaultInstance(props, new SMTPAuthenticator());
// Get the store
Store store = session.getStore();
store.connect(POP_HOST_NAME, AUTH_USER, AUTH_PWD);
// Get folder
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
// Get directory
Message messages[] = folder.getMessages();
for (int i = 0; i < messages.length; i++) {
Message message = messages[i];
String from = InternetAddress.toString(message.getFrom());
Multipart multipart = (Multipart) message.getContent();
for (int x = 0; x < multipart.getCount(); x++) {
BodyPart bodyPart = multipart.getBodyPart(x);
String msg = bodyPart.getContent().toString();
}
}
// Close connection
folder.close(true);
store.close();
}