Parser de e-mail

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

Que tipo de parser você precisa? o conteúdo das mensagens vai ser padronizado? ou são mensagens comuns de email que recebemos no dia a dia (spam por exemplo)? … geralmente este conteúdo é html…

Eu preciso coletar somente o texto do e-mail, e o conteudo do e-mail não é padronizado, por exemplo:
Eu vi que o conteudo de alguns e-mail chegam em html, alguns com assinatura, imagem e etc, e como esse html é dinâmico fica dificil fazer um parse para pegar apenas o texto que a pessoa digitou.

Desde já muito obrigado.