
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
- Analizar y leer un archivo MSG de Outlook
- Obtener archivos adjuntos del archivo MSG
- Leer mensaje incrustado del archivo adjunto
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:
- Cargue un archivo MSG usando el método MapiMessage.load().
- 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.
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:
- Cargue un archivo MSG usando el método MapiMessage.load().
- Recorra la colección de archivos adjuntos asociada con el objeto MapiMessage.
- 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.
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:
- Cargue un archivo MSG usando el método MapiMessage.load().
- Obtenga el mensaje adjunto como un objeto MapiMessage.
- 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.