Em certos casos, pode ser necessário ler e analisar mensagens de email EML ou MSG de dentro de seus aplicativos. Para fazer isso programaticamente, este artigo mostra como extrair informações das mensagens de email em Java. Particularmente, você aprenderá a ler as informações de assunto, para, de, corpo e cabeçalho do e-mail.
- API Java para ler e-mails
- Ler uma mensagem de e-mail usando Java
- Extraia o corpo do e-mail como texto simples
- Extrair informações do cabeçalho do e-mail
- Decodificar o valor do cabeçalho do e-mail
- Obtenha uma licença de API gratuita
API Java para ler e-mails
Para ler as mensagens de e-mail, usaremos Aspose.Email for Java. É uma API poderosa que permite criar clientes de e-mail ricos em recursos em Java. Você pode baixar o JAR da API ou instalá-lo usando as seguintes configurações do Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>21.3</version>
<classifier>jdk16</classifier>
</dependency>
Ler uma mensagem de e-mail usando Java
A seguir estão as etapas para ler uma mensagem de email em Java.
- Carregue o arquivo de e-mail usando a classe MailMessage.
- Leia o conteúdo do e-mail usando o objeto MailMessage, como Para, De, Assunto, Corpo, etc.
O exemplo de código a seguir mostra como ler uma mensagem de email usando Java.
// Crie uma instância de MailMessage carregando um arquivo Eml
MailMessage message = MailMessage.load("test.eml");
System.out.print("From: ");
// Obter as informações do remetente
System.out.println(message.getFrom());
System.out.print("To: ");
// Obtenha as informações dos destinatários
System.out.println(message.getTo());
System.out.print("Subject: ");
// Pegue o assunto
System.out.println(message.getSubject());
System.out.print("HtmlBody: ");
// Obter o corpo HTML
System.out.println(message.getHtmlBody());
System.out.print("TextBody: ");
// Obtém o corpo do texto
System.out.println(message.getTextBody());
System.out.print("HtmlBodyText: ");
// Obtém o corpo do texto from HTML
System.out.println(message.getHtmlBodyText());
Extraia o corpo do email como texto simples em Java
Você também pode ler um e-mail e extrair seu corpo como texto simples em vez de HTML. A seguir estão as etapas para realizar esta operação.
- Carregue o arquivo de e-mail usando a classe MailMessage.
- Extraia o corpo do email usando o método MailMessage.getHtmlBodyText(boolean).
O exemplo de código a seguir mostra como extrair o corpo do email como texto simples em Java.
// Carregar mensagem de e-mail
MailMessage mail = MailMessage.load("HtmlWithUrlSample.eml");
body_with_url = mail.getHtmlBodyText(true);// body will contain URL
String body_without_url = mail.getHtmlBodyText(false);// body will not contain URL
// Imprimir mensagem de e-mail
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);
Extrair informações de cabeçalho de um email em Java
Aspose.Email para Java também permite que você leia as informações do cabeçalho de uma mensagem de e-mail. A seguir estão as etapas para realizar esta operação.
- Carregue o arquivo de e-mail usando a classe MailMessage.
- Percorra a coleção de cabeçalhos do e-mail usando o método MailMessage.getHeaders().
O exemplo de código a seguir mostra como ler o cabeçalho da mensagem de email usando Java.
// Crie uma instância MailMessage carregando um arquivo EML
MailMessage message = MailMessage.load("test.eml");
// Imprima todos os cabeçalhos
System.out.println("Printing all Headers:\n\n");
for (int i=0; i< message.getHeaders().size(); i++)
System.out.println(message.getHeaders().get(i));
Decodificar cabeçalhos de e-mail em Java
Você também pode decodificar os cabeçalhos de e-mail usando as etapas a seguir.
- Carregue o arquivo de e-mail usando a classe MailMessage.
- Obtenha o valor do cabeçalho de e-mail decodificado usando o método MailMessage.getHeaders().getDecodedValue(String name).
O exemplo de código a seguir mostra como decodificar um valor de cabeçalho de email em Java.
// Carregar mensagem de e-mail
MailMessage mail = MailMessage.load("test.eml");
// Obter valor decodificado do cabeçalho
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");
// Imprima o valor
System.out.println(decodedValue);
Obtenha uma licença de API gratuita
Você pode solicitar uma licença temporária gratuita para usar a API sem limitações de avaliação.
Demonstração ao vivo
Conclusão
Neste artigo, você aprendeu a ler mensagens de e-mail usando Java. Além disso, você viu como extrair informações de cabeçalho de uma mensagem de e-mail. Você pode explorar mais sobre a API de e-mail Java usando documentação. Além disso, você pode entrar em contato conosco através do nosso fórum em caso de dúvidas.