Extrayendo contenidos de mensajes de correos electrónicos

Mostrando información del correo electrónico en pantalla

El MailMessage representa un mensaje de correo electrónico y permite a los desarrolladores acceder a las propiedades del mensaje. La información del encabezado (discutida en Extrayendo encabezados de correo electrónico) puede extraerse y manipularse de diferentes maneras. Este artículo explica cómo mostrar información seleccionada del encabezado del correo electrónico y el cuerpo del mensaje en la pantalla.

  1. Cree una instancia de MailMessage.
  2. Cargue un mensaje de correo electrónico en la instancia MailMessage.
  3. Muestre el contenido del correo electrónico en la pantalla.

El código a continuación demuestra cómo cargar un mensaje de correo electrónico y mostrar sus contenidos - remitente, destinatario, asunto y cuerpo del correo - en la pantalla.

Obteniendo la fecha y hora del mensaje

El MailMessage class puede usarse para recuperar la fecha del mensaje en UTC o zona horaria local. Esta información puede resumirse como sigue:

  1. MailMessage.getDate() - devuelve la fecha en UTC
  2. MailMessage.getLocalDate() - devuelve la fecha en la zona horaria local
  3. MailMessage.isLocalDate Devuelve true, si MailMessage.getDate() está en la zona horaria local

Extrayendo encabezados de correo electrónico

El encabezado de correo electrónico representa un conjunto estándar de campos de encabezado definidos por Internet y RFC incluidos en los mensajes de correo electrónico de Internet. Un encabezado de correo puede especificarse utilizando el MailMessage clase. Los tipos de encabezado comunes se definen en el HeaderType clase. Es una clase sellada que funciona como una enumeración normal.

Para extraer encabezados de un correo, siga estos pasos:

  1. Cree una instancia de la clase MailMessage.
  2. Cargue un mensaje de correo electrónico en la instancia de la clase MailMessage.
  3. Después de cargar un mensaje de correo electrónico, obtendremos su contenido sin procesar. La clase MailMessage contiene propiedades como From, To, Cc, Subject, etc. Estas propiedades pueden extraerse de los encabezados.
  4. Muestre el contenido sin procesar.

Obtener valores de encabezado decodificados

Obtener y modificar el encabezado de disposición del recurso enlazado

El recurso enlazado puede accederse y manipularse programáticamente en el objeto del mensaje de correo. El getContentDisposition() método del LinkedResource class obtiene el encabezado Content-Disposition. El ejemplo de código a continuación muestra cómo acceder y modificar el nombre de archivo del recurso enlazado:

MailMessage eml = MailMessage.load(fileName);
eml.getLinkedResources().get_Item(0).getContentDisposition().setFileName("changed.png");

Obtener cuerpo HTML como texto plano

El MailMessage class ofrece la funcionalidad de extraer el cuerpo HTML del mensaje como texto plano. La clase MailMessage proporciona un GetHtmlBodyText método que devuelve el cuerpo HTML en texto plano. El método GetHtmlBodyText acepta un parámetro booleano que indica si el cuerpo debe contener URL o no. Pasar el parámetro como true indica que el cuerpo HTML debe contener URL.

El siguiente fragmento de código muestra el uso del método GetHtmlBodyText para extraer el cuerpo HTML del correo como texto plano.

Recuperar direcciones X.500 de Exchange desde correos

Aspose.Email for Java permite acceder a direcciones X.500 de Exchange directamente a través del MailAddress class. Con el X500Address propiedad, puedes recuperar la dirección de correo en formato X.500 de Exchange cuando esté disponible. El siguiente ejemplo de código muestra cómo cargar un mensaje de correo y obtener la dirección X.500 del remitente:

MailMessage mailMessage = MailMessage.load(fileName);
String exaddr = mailMessage.getFrom().getX500Address();

Si la dirección X.500 existe, se devolverá como una cadena y podrá usarse para procesamiento adicional o registro en aplicaciones que interactúan con sistemas basados en Exchange.

Extraer y incrustar imágenes enlazadas como adjuntos en correos HTML

Aspose.Email ExtractHTMLBodyResourcesAsAttachments método del HtmlSaveOption class define si extraer recursos del cuerpo HTML como adjuntos. Así, puedes extraer contenido enlazado con imágenes del cuerpo HTML e incrustarlo como adjunto en un mensaje MIME. Las imágenes enlazadas se conservan y asocian correctamente con el correo, mejorando la integridad del contenido y la accesibilidad sin conexión.

El siguiente ejemplo de código muestra cómo realizar esta tarea:

MailMessage mailMessage = MailMessage.load("input.eml");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExtractHTMLBodyResourcesAsAttachments(true);
options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
    public void invoke(final Object sender, final ResourceHtmlRenderingEventArgs e) {
        System.out.println(e.getPathToResourceFile() + " " + ((Attachment)sender).getContentId());
    }
});