Enviar documento de word en el correo electrónico c#

La presentación del cuerpo de los correos electrónicos es uno de los factores importantes para atraer a los lectores. Por lo tanto, los correos electrónicos tienen un buen formato con encabezados, subtítulos, tablas, imágenes, etc. Sin embargo, la mayoría de los editores de correo electrónico integrados no brindan opciones de formato avanzadas. Para abordar esta limitación, este artículo explica cómo redactar sus correos electrónicos utilizando documentos de Word como cuerpo del correo electrónico en C#.

API de C# para importar documentos de Word a correo electrónico

Para importar el contenido de un documento de Word, usaremos Aspose.Words for .NET API. Mientras que, para redactar y enviar el correo electrónico, aprovecharemos las capacidades de Aspose.Email for .NET. Las dos API mencionadas anteriormente se pueden descargar como DLL o instalar a través de NuGet.

Descargar archivos DLL

Instalar a través de NuGet

PM> Install-Package Aspose.Words
PM> Install-Package Aspose.Email

Enviar documento de Word en el cuerpo del correo electrónico usando C#

  1. Cargue el documento de Word utilizando la clase Aspose.Words.Document y guárdelo como MHTML en un objeto MemoryStream.
// Cargar un documento de Word desde el disco
Document wordDocument = new Document("Word.docx");

// Guarde el documento como MHTML en el flujo de memoria
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);
  1. Cargue el MHTML desde el objeto MemoryStream al objeto Aspose.Email.MailMessage y configure el asunto, los campos de origen y destino del correo electrónico.
// Establecer posición en 0
mhtmlStream.Position = 0;

// Crear mensaje de correo electrónico desde MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Establecer campos de correo electrónico
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";
  1. Configure el cliente SMTP usando la clase Aspose.Email.Clients.Smtp.SmtpClient y envíe el correo electrónico.
// Enviar correo electrónico a través de SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Código fuente

El siguiente es el código fuente completo para importar un documento de MS Word como un cuerpo de correo electrónico usando C#.

// Cargar un documento de Word desde el disco
Document wordDocument = new Document("Word.docx");

// Guarde el documento como MHTML en el flujo de memoria
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Establecer posición en 0
mhtmlStream.Position = 0;

// Crear mensaje de correo electrónico desde MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Establecer campos de correo electrónico
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";

// Enviar correo electrónico a través de SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Obtenga una licencia de API gratuita

Puedes probar la API sin limitaciones de evaluación de forma gratuita. Obtenga una licencia temporal gratuita ahora.

Conclusión

En este artículo, ha aprendido a importar un documento de Word como cuerpo de un correo electrónico mediante C#. Además, el ejemplo de código ha mostrado cómo enviar el mensaje de correo electrónico redactado mediante un cliente SMTP. Puede explorar más sobre las API que se utilizan en el artículo visitando las siguientes documentaciones.

Ver también