Guardar archivos adjuntos de correos electrónicos usando C#

Como desarrollador de C#, puede extraer y guardar fácilmente los archivos adjuntos de los mensajes de correo electrónico mediante programación. En este artículo, aprenderá cómo guardar archivos adjuntos de correos electrónicos usando C#.

Los siguientes temas se discuten/tratan en este artículo:

API de C# para guardar archivos adjuntos de correo electrónico

Para guardar los archivos adjuntos de los archivos MSG, usaremos GroupDocs.Viewer para .NET API. Es una poderosa API de visor de documentos para representar y mostrar formatos de archivo ampliamente utilizados sin instalar ningún software externo. También le permite ver rápidamente formatos de archivo compatibles de Word, Excel, PowerPoint, correos electrónicos de Outlook, Proyecto, PDF, HTML y XML.

Puede descargar la DLL de la API o instalarla mediante NuGet.

Install-Package GroupDocs.Viewer

Extraiga y guarde archivos adjuntos de correos electrónicos usando C#

Puede extraer y guardar archivos adjuntos de archivos MSG de correo electrónico mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cargue el archivo MSG utilizando la clase Viewer.
  • Luego, llame al método Viewer.GetAttachments() para obtener todos los archivos adjuntos del archivo MSG cargado. Obtenga los resultados como una colección de archivos adjuntos.
  • Para cada archivo adjunto de la colección, guarde el archivo adjunto llamando al método Viewer.SaveAttachment(). Pase el objeto adjunto y la ruta del archivo para guardarlo.

El siguiente ejemplo de código muestra cómo extraer y guardar los archivos adjuntos contenidos en el archivo MSG de correo electrónico usando C#.

string outputPath = @"C:\Files\Viewer\";

// Inicialice la API y cargue el archivo MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// Obtener archivos adjuntos
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // Guardar archivo adjunto
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
Extraiga y guarde archivos adjuntos de correos electrónicos usando C#

Extrae y guarda archivos adjuntos de correos electrónicos usando C#.

Guardar archivos adjuntos como PDF desde correos electrónicos usando C#

Puede guardar los archivos adjuntos del mensaje de correo electrónico como PDF mediante programación siguiendo los pasos que se detallan a continuación:

  • Cree una instancia de la clase Adjunto con el nombre del archivo adjunto y la ruta del archivo.
  • Inicialice una instancia de la clase MemoryStream.
  • Cargue el archivo MSG usando la clase Viewer.
  • Luego, llame al método Viewer.SaveAttachment() y pase el objeto Attachment y MemoryStream como parámetros de entrada. Extraerá y guardará el archivo adjunto especificado en el flujo de memoria.
  • Ahora, cargue el objeto MemoryStream usando la clase Viewer.
  • Luego, cree una instancia de la clase PdfViewOptions con la ruta del archivo PDF de salida.
  • Finalmente, llame al método Viewer.View() para guardar y ver el archivo adjunto como PDF.

El siguiente ejemplo de código muestra cómo guardar y ver el archivo adjunto como PDF desde un archivo MSG de correo electrónico usando C#.

// Inicializar archivo adjunto
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// Inicialice la API y cargue el archivo MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // Guardar adjunto en flujo
    viewer.SaveAttachment(attachment, attachmentStream);
}

// Inicialice la API y cargue el flujo de archivos adjuntos
using (Viewer viewer = new Viewer(attachmentStream))
{
    // Definir opciones de visualización de PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // Ver como PDF
    viewer.View(viewOptions);
}
Save attachments as PDF from emails using C#.

Obtenga una licencia gratis

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

Conclusión

En este artículo, ha aprendido cómo extraer y guardar los archivos adjuntos contenidos en el archivo MSG de correo electrónico usando C#. Además, ha visto cómo guardar un archivo adjunto específico como PDF mediante programación. Además, puede obtener más información sobre GroupDocs.Viewer para la API de .NET utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también