Lea el archivo MSG de Outlook usando Java

El MSG es un formato de archivo de correo electrónico utilizado por MS Outlook. Es un elemento de Outlook que permite almacenar correos electrónicos, contactos, mensajes, tareas, citas, etc. En ciertos casos, es posible que necesitemos leer archivos MSG de Outlook en aplicaciones Java y extraer propiedades como asunto, destinatarios, remitente, cuerpo, etc. En este artículo, aprenderemos cómo leer un archivo MSG de Outlook usando Java.

En este artículo se tratarán los siguientes temas:

API de Java para leer el archivo MSG de Outlook

Para leer el archivo MSG de Outlook, utilizaremos la API Aspose.Email for Java. Permite crear, enviar, leer y manipular mensajes de correo electrónico sin problemas. También admite el análisis de archivos MSG de Outlook y proporciona su contenido en objetos Java. Descargue el JAR de la API o simplemente agregue la siguiente configuración pom.xml en una aplicación Java basada en 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>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Analizar y leer un archivo MSG de Outlook usando Java

Podemos analizar y leer un archivo MSG de Outlook siguiendo los pasos que se indican a continuación:

  1. Cargue un archivo MSG usando el método MapiMessage.load().
  2. Leer propiedades como SenderName, Asunto, Cuerpo, Destinatarios del MSG cargado.

El siguiente ejemplo de código muestra cómo leer un archivo MSG de Outlook usando Java.

// Este ejemplo de código demuestra cómo leer el archivo MSG.
// Cargue un archivo MSG desde el disco
MapiMessage outlookMessageFile = MapiMessage.load("D:\\Files\\Email\\message.msg");

// Mostrar el nombre del remitente
System.out.println("Sender Name : " + outlookMessageFile.getSenderName());

// Asunto de visualización
System.out.println("Subject : " + outlookMessageFile.getSubject());

// Cuerpo de la pantalla
System.out.println("Body : " + outlookMessageFile.getBody());

// Mostrar información del destinatario
System.out.println("Recipients : \n");

// Recorra la colección de destinatarios asociada con el objeto MapiMessage
for (int i = 0; i < outlookMessageFile.getRecipients().size(); i++) {
  
  // Establecer una referencia al objeto MapiRecipient
  MapiRecipient rcp = (MapiRecipient) outlookMessageFile.getRecipients().get_Item(i);
  
  // Mostrar la dirección de correo electrónico del destinatario
  System.out.println("Email : " + rcp.getEmailAddress());
  
  // Mostrar el nombre del destinatario
  System.out.println("Name : " + rcp.getDisplayName());
  
  // Mostrar tipo de destinatario
  System.out.println("Recipient Type : " + rcp.getRecipientType());
}
Analice y lea un archivo MSG de Outlook usando Java.

Analice y lea un archivo MSG de Outlook usando Java.

Obtenga archivos adjuntos del archivo MSG usando Java

También podemos guardar los archivos adjuntos de un archivo MSG de Outlook siguiendo los pasos que se detallan a continuación:

  1. Cargue un archivo MSG usando el método MapiMessage.load().
  2. Recorra la colección de archivos adjuntos asociada con el objeto MapiMessage.
  3. Guarde cada archivo adjunto en el disco usando el método save().

El siguiente ejemplo de código muestra cómo guardar archivos adjuntos de un archivo MSG de Outlook usando Java.

// Este ejemplo de código muestra cómo guardar archivos adjuntos desde un archivo MSG.
// Cargue un archivo MSG desde el disco
MapiMessage outlookMessageFile = MapiMessage.load("D:\\Files\\Email\\WithEmbeddedMsg.msg");

// Recorra la colección de archivos adjuntos asociada con el objeto MapiMessage
for (int i = 0; i < outlookMessageFile.getAttachments().size(); i++) {
  
  // Establecer una referencia al objeto MapiAttachment
  MapiAttachment outlookMessageAttachment = (MapiAttachment) outlookMessageFile.getAttachments().get_Item(i);
  
  // Mostrar tipo de archivo adjunto
  System.out.println("Att Type : " + outlookMessageAttachment.getMimeTag());
  
  // Mostrar el nombre del archivo adjunto
  System.out.println("File Name : " + outlookMessageAttachment.getLongFileName());
  
  // Guardar archivo adjunto en el disco
  outlookMessageAttachment.save("D:\\Files\\Email\\" + outlookMessageAttachment.getDisplayName());
}
Obtenga archivos adjuntos del archivo MSG usando Java.

Obtenga archivos adjuntos del archivo MSG usando Java.

Leer mensaje incrustado del archivo adjunto

También podemos leer los mensajes de correo electrónico incrustados en el archivo adjunto MSG de Outlook siguiendo los pasos que se detallan a continuación:

  1. Cargue un archivo MSG usando el método MapiMessage.load().
  2. Obtenga el mensaje adjunto como un objeto MapiMessage.
  3. Mostrar propiedades del mensaje.

El siguiente ejemplo de código muestra cómo leer un mensaje incrustado como archivo adjunto mediante Java.

// Este ejemplo de código demuestra cómo leer un mensaje incrustado adjunto en MSG.
// Cargar un archivo MSG
MapiMessage mapi = MapiMessage.load(dataDir + "EmbededMessageAsAttachment.msg");

// Mostrar archivos adjuntos totales
System.out.println("Total attachments : " + mapi.getAttachments().size());

// Leer archivo adjunto como MapiMessage
MapiMessage emb = mapi.getAttachments().get_Item(0).getObjectData().toMapiMessage();

// Mostrar el nombre del remitente
System.out.println("Sender Name : " + emb.getSenderName());

// Asunto de visualización
System.out.println("Subject : " + emb.getSubject());

// Cuerpo de la pantalla
System.out.println("Body : " + emb.getBody());

// Mostrar información del destinatario
System.out.println("Recipients :");

// Recorra la colección de destinatarios asociada con el objeto MapiMessage
for (int i = 0; i < emb.getRecipients().size(); i++) {
  
  // Establecer una referencia al objeto MapiRecipient
  MapiRecipient rcp = (MapiRecipient) emb.getRecipients().get_Item(i);
  
  // Mostrar la dirección de correo electrónico del destinatario
  System.out.println("\t Email : " + rcp.getEmailAddress());
  
  // Mostrar el nombre del destinatario
  System.out.println("\t Name : " + rcp.getDisplayName());
  
  // Mostrar tipo de destinatario
  System.out.println("\t Recipient Type : " + rcp.getRecipientType());
}

Obtenga una licencia gratis

Pruebe la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, hemos aprendido cómo leer el contenido del archivo MSG de Outlook mediante programación usando Java. Además, hemos visto cómo leer y extraer archivos adjuntos de un archivo MSG. Además, puede obtener más información sobre Aspose.Email para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también