Trabajar con adjuntos de mensaje
Analizar y guardar adjuntos
Los archivos de mensaje Outlook pueden contener uno o más adjuntos. Aspose.Email permite a los desarrolladores iterar a través de los adjuntos en un archivo MSG y guardarlos en disco. Este tema describe el proceso. También describe cómo incrustar un adjunto.
Aspose.Email MapiMessage clase se usa para cargar un archivo MSG desde disco y expone el getAttachments() método que hace referencia al MapiAttachment colección de objetos asociada con el archivo MSG. El MapiAttachment el objeto expone además métodos que realizan acciones sobre el adjunto.
Para guardar adjuntos en un archivo MSG en disco con el nombre y extensión originales:
- Cree una instancia de la MapiMessage clase para cargar un archivo MSG usando el Load() método estático.
- Llame al MapiRecipient clase getAttachments() método para obtener una referencia a la colección de MapiAttachment objetos asociados con el archivo MSG.
- Iterar a través del MapiAttachmentCollection para mostrar el contenido respecto a cada MapiAttachment objeto a través de sus métodos públicos.
- Llame al MapiAttachment clase save() método para guardar el adjunto en el disco.
Incrustar mensajes como adjuntos
Un mensaje de Microsoft Outlook puede contener otros mensajes de Microsoft Outlook como adjuntos, ya sea como mensajes regulares, descritos arriba, o como mensajes incrustados. El MapiAttachmentCollection proporciona miembros sobrecargados del método add para crear mensajes Outlook con ambos tipos de adjuntos. Los archivos MSG de Outlook incrustados en un archivo MSG contienen un PR_ATTACH_METHOD con el valor 5.
Leer un mensaje incrustado desde un adjunto
Inserción y reemplazo de adjuntos MSG
La API Aspose.Email permite insertar adjuntos en un índice específico en el mensaje padre. También proporciona la capacidad de reemplazar el contenido de un adjunto con otro adjunto de mensaje.
Insertar adjunto MSG en ubicación específica
La API Aspose.Email proporciona la capacidad de insertar un adjunto MSG a un MSG padre usando el MapiAttachmentCollection.Insert() método.
Reemplazar contenidos de adjunto MSG incrustado
Esto puede usarse para reemplazar el contenido del adjunto incrustado con los nuevos usando el Reemplazar método. Sin embargo, no se puede usar para insertar un adjunto con PR_ATTACH_NUM = 4 (por ejemplo) en una colección con collection.Count = 2.
Guardar adjuntos de mensaje firmado digitalmente
La API Aspose.Email permite obtener o establecer un valor que indica si un mensaje con firma clara será decodificado.
Renombrar un adjunto en un MapiMessage
Aspose.Email hace posible editar el Nombre para mostrar valor de propiedad en Adjuntos MapiMessage.
El siguiente ejemplo de código muestra cómo actualizar los nombres para mostrar del primer y segundo adjunto dentro del mensaje Mapi cargado:
MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");
Comprobar si un adjunto es incrustado o regular
La diferencia entre los adjuntos incrustados y los regulares radica en cómo se presentan dentro de un correo electrónico. Los adjuntos incrustados están integrados en el cuerpo del correo y pueden verse sin necesidad de abrir un archivo separado o descargar nada. Los adjuntos regulares, por otro lado, son archivos separados que se adjuntan al correo pero no se muestran directamente dentro del cuerpo del mensaje y necesitan descargarse y abrirse externamente. El MapiAttachment.IsInline propiedad del MapiAttachment la clase obtiene un valor que indica si el adjunto es incrustado o regular.
El siguiente ejemplo de código carga un mensaje de correo desde un archivo y luego recupera información sobre los adjuntos, imprimiendo específicamente el nombre para mostrar de cada adjunto y si está incrustado dentro del mensaje o no:
MapiMessage message = MapiMessage.load("fileName");
for (MapiAttachment attach : message.getAttachments()) {
System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}