Leer correos electrónicos en Java

En ciertos casos, es posible que necesite leer y analizar mensajes de correo electrónico EML o MSG desde sus aplicaciones. Para hacerlo mediante programación, este artículo muestra cómo extraer información de los mensajes de correo electrónico en Java. En particular, aprenderá a leer el asunto del correo electrónico, el destinatario, el remitente, el cuerpo y la información del encabezado.

API de Java para leer correos electrónicos

Para leer los mensajes de correo electrónico, usaremos Aspose.Email for Java. Es una potente API que le permite crear clientes de correo electrónico ricos en funciones en Java. Puede descargar el JAR de la API o instalarlo usando las siguientes configuraciones de 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>

Leer un mensaje de correo electrónico usando Java

Los siguientes son los pasos para leer un mensaje de correo electrónico en Java.

  • Cargue el archivo de correo electrónico utilizando la clase MailMessage.
  • Lea el contenido del correo electrónico utilizando el objeto MailMessage, como Para, De, Asunto, Cuerpo, etc.

El siguiente ejemplo de código muestra cómo leer un mensaje de correo electrónico usando Java.

// Cree una instancia de MailMessage cargando un archivo Eml
MailMessage message = MailMessage.load("test.eml");

System.out.print("From: ");
// Obtener la información del remitente
System.out.println(message.getFrom());
		
System.out.print("To: ");
// Obtener la información de los destinatarios
System.out.println(message.getTo());
		
System.out.print("Subject: ");
// Obtener el tema
System.out.println(message.getSubject());
		
System.out.print("HtmlBody: ");
// Obtener el cuerpo HTML
System.out.println(message.getHtmlBody());
		
System.out.print("TextBody: ");
// Obtiene el cuerpo del texto
System.out.println(message.getTextBody());
		
System.out.print("HtmlBodyText: ");
// Obtiene el cuerpo del texto from HTML
System.out.println(message.getHtmlBodyText());

Extraiga el cuerpo del correo electrónico como texto sin formato en Java

También puede leer un correo electrónico y extraer su cuerpo como texto sin formato en lugar de HTML. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo extraer el cuerpo del correo electrónico como texto sin formato en Java.

// Cargar mensaje de correo electrónico
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 mensaje de correo electrónico
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);

Extraiga la información del encabezado de un correo electrónico en Java

Aspose.Email for Java también le permite leer la información del encabezado de un mensaje de correo electrónico. Los siguientes son los pasos para realizar esta operación.

  • Cargue el archivo de correo electrónico utilizando la clase MailMessage.
  • Recorra la colección de encabezados del correo electrónico usando el método MailMessage.getHeaders().

El siguiente ejemplo de código muestra cómo leer el encabezado del mensaje de correo electrónico usando Java.

// Cree una instancia de MailMessage cargando un archivo EML
MailMessage message = MailMessage.load("test.eml");

// Imprime todos los encabezados
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 encabezados de correo electrónico en Java

También puede decodificar los encabezados de correo electrónico siguiendo los siguientes pasos.

El siguiente ejemplo de código muestra cómo descodificar un valor de encabezado de correo electrónico en Java.

// Cargar mensaje de correo electrónico
MailMessage mail = MailMessage.load("test.eml");

// Obtener valor decodificado del encabezado
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");

// Imprime el valor
System.out.println(decodedValue);

Obtenga una licencia de API gratuita

Puede solicitar una licencia temporal gratuita para utilizar la API sin limitaciones de evaluación.

Demo en vivo

Conclusión

En este artículo, ha aprendido a leer mensajes de correo electrónico utilizando Java. Además, ha visto cómo extraer información del encabezado de un mensaje de correo electrónico. Puede explorar más sobre la API de correo electrónico de Java usando documentación. Además, puede ponerse en contacto con nosotros a través de nuestro foro en caso de cualquier consulta.

Ver también