Trabajar con archivos adjuntos de mensajes

Administración de archivos adjuntos con Aspose Outlook

Creación y almacenamiento de archivos de mensajes de Outlook (MSG) explica cómo crear y guardar mensajes y cómo crear archivos MSG con archivos adjuntos. En este artículo se explica cómo administrar los archivos adjuntos de Microsoft Outlook con Aspose.Email. Se puede acceder a los archivos adjuntos de un archivo de mensajes y guardarlos en el disco mediante MapiMessage class Attachments propiedad. El Attachments la propiedad es una colección de tipos MapiAttachmentCollection class.

Comprueba si el archivo adjunto está en línea o es normal

Los archivos adjuntos en línea y regulares tienen diferentes propósitos. Los archivos adjuntos en línea se integran visualmente en el mensaje de correo electrónico y suelen ser imágenes o archivos multimedia. Mientras tanto, los archivos adjuntos normales son archivos independientes que se adjuntan al correo electrónico y pueden incluir varios tipos de archivos. El MapiAttachment.IsInline propiedad del MapiAttachment la clase obtiene un valor que indica si el adjunto está en línea o es normal.

El siguiente ejemplo de código extrae y muestra información sobre cada adjunto del MAPIMessage cargado, incluidos sus nombres para mostrar y si son archivos adjuntos en línea o no.

var message = MapiMessage.Load(fileName);

foreach (var attach in message.Attachments)
{
    Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}

Guardar archivos adjuntos del archivo de mensajes de Outlook (MSG)

Para guardar los archivos adjuntos de un archivo MSG:

  1. Recorra en iteración el MapiAttachmentCollection recoja y obtenga los archivos adjuntos individuales.
  2. Para guardar los archivos adjuntos, llame al método Save () de la clase MapiAttachment.

El siguiente fragmento de código muestra cómo guardar los archivos adjuntos en el disco local.

Obtener archivos adjuntos de mensajes de correo anidados

Los archivos adjuntos OLE incrustados también aparecen en MapiMessage colección de archivos adjuntos de clase. El siguiente ejemplo de código analiza un archivo de mensajes en busca de archivos adjuntos incrustados y lo guarda en el disco. El MapiMessage El método estático class fromProperties () puede crear un nuevo mensaje a partir de un archivo adjunto incrustado. El siguiente fragmento de código muestra cómo obtener archivos adjuntos de mensajes de correo anidados.

Eliminar archivos adjuntos

La biblioteca Aspose Outlook proporciona la funcionalidad para eliminar los archivos adjuntos de los archivos de mensajes de Microsoft Outlook (.msg):

  • Llama al método removeAttachments (). Toma la ruta del archivo de mensajes como parámetro. Se implementa como un método estático público, por lo que no es necesario crear una instancia del objeto.

El siguiente fragmento de código muestra cómo eliminar los archivos adjuntos.

También puede llamar al MapiMessage método estático de clase DestoryAttachment(). Funciona más rápido que removeAttachment (), porque el método removeAttachment () analiza el archivo de mensajes.

Agregar archivos adjuntos de MSG

Un mensaje de Outlook puede contener otros mensajes de Microsoft Outlook en archivos adjuntos, ya sea como mensajes normales o incrustados. El MapiAttachmentCollection permite a los miembros sobrecargados del método Add crear mensajes de Outlook con ambos tipos de datos adjuntos.

Agregar un ReferenceAttachment en un MapiMessage

The MapiAttachmentCollection.Add (nombre de cadena, cadena SharedLink, cadena url, cadena ProviderName) método del MapiAttachmentCollection La clase permite agregar un adjunto de referencia en un mapiMessage. Cuando los destinatarios del correo electrónico hagan clic en el archivo adjunto de referencia, podrán acceder al archivo vinculado si tienen los permisos adecuados para hacerlo. Al usar un archivo adjunto de referencia, puede enviar un mensaje de correo electrónico más pequeño y asegurarse de que todos tengan acceso a la versión más actualizada del archivo o elemento.

El método tiene los siguientes parámetros:

  • name - el nombre del adjunto
  • sharedLink - un enlace compartido totalmente cualificado al archivo adjunto proporcionado por el servicio web que manipula el archivo adjunto
  • url - una ubicación de archivo
  • providerName - el nombre del proveedor de archivos adjuntos de referencia

El ejemplo de código siguiente muestra cómo agregar un adjunto de referencia a un mensaje:

// Let's say you want to send an email message that includes a link to a Document.pdf file stored on a Google Drive.
// Instead of attaching the document directly to the email message,
// you can create a reference attachment that links to the file on the Google Drive.

// Create a message
var msg = new MapiMessage("from@domain.com", "to@domain.com", "Outlook message file",
    "This message is created by Aspose.Email", OutlookMessageFormat.Unicode);

// Add reference attachment
msg.Attachments.Add("Document.pdf",
    "https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
    "https://drive.google.com/drive/my-drive",
    "GoogleDrive");
//Also, you can set additional attachment properties
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPermissionType, AttachmentPermissionType.AnyoneCanEdit);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentOriginalPermissionType, 0);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentIsFolder, false);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentProviderEndpointUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPreviewUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentThumbnailUrl, "");
// Finally save the message
msg.Save(@"my.msg");

Incrustar un mensaje como archivo adjunto

El siguiente fragmento de código muestra cómo incrustar un archivo MSG adjunto en un mensaje.

Lectura de mensajes incrustados desde archivos adjuntos

El siguiente fragmento de código muestra cómo leer los mensajes incrustados de los archivos adjuntos.

Inserción y reemplazo de archivos adjuntos

La API Aspose.Email ofrece la capacidad de insertar archivos adjuntos en un índice específico en el mensaje principal. También ofrece la posibilidad de reemplazar el contenido de un adjunto por otro adjunto de mensaje.

Insertar en una ubicación específica

La API Aspose.Email ofrece la capacidad de insertar un archivo adjunto de MSG en un mensaje principal mediante el método de inserción MapiAttachmentCollection Insert de MapiAttachmentCollection Insert (int index, string name, mapiMessage msg). En el siguiente fragmento de código, se muestra cómo insertar un archivo adjunto en una ubicación específica.

Reemplazar el contenido del archivo adjunto

Esto se puede usar para reemplazar el contenido de los archivos adjuntos incrustados por otros nuevos mediante el método Replace. Sin embargo, no se puede usar para insertar datos adjuntos con PR_ATTACH_NUM = 4 (por ejemplo) en la colección con Collection.count = 2. El siguiente fragmento de código muestra cómo reemplazar el contenido de los archivos adjuntos.

Cambiar el nombre de un archivo adjunto en MapiMessage

Es posible editar el valor de la propiedad DisplayName en los archivos adjuntos de MapiMessage.

var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";

Guardar archivos adjuntos de mensajes firmados digitalmente

La API Aspose.Email ofrece la capacidad de obtener o establecer un valor que indique si se decodificará un mensaje con firma clara.