Enviar documento do word em e-mail c#

A apresentação do corpo dos emails é um dos fatores importantes para engajar os leitores. Portanto, os e-mails são bem formatados usando títulos, subtítulos, tabelas, imagens e etc. No entanto, a maioria dos editores de e-mail integrados não oferece opções avançadas de formatação. Para resolver essa limitação, este artigo aborda como redigir seus e-mails usando documentos do Word como corpo de e-mail em C#.

APIs C# para importar documento do Word para e-mail

Para importar o conteúdo de um documento do Word, usaremos a API Aspose.Words for .NET. Considerando que, para compor e enviar o e-mail, aproveitaremos os recursos do Aspose.Email for .NET. Ambas as APIs mencionadas acima podem ser baixadas como DLL ou instaladas via NuGet.

Baixar DLLs

Instalar via NuGet

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

Enviar documento do Word no corpo do email usando C#

  1. Carregue o documento do Word usando a classe Aspose.Words.Document e salve-o como MHTML em um objeto MemoryStream.
// Carregar um documento do Word do disco
Document wordDocument = new Document("Word.docx");

// Salvar documento como MHTML no fluxo de memória
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);
  1. Carregue o MHTML do objeto MemoryStream para o objeto Aspose.Email.MailMessage e defina o assunto, de e para os campos do e-mail.
// Definir posição para 0
mhtmlStream.Position = 0;

// Criar mensagem de e-mail de MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Definir campos de e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";
  1. Configure o cliente SMTP usando a classe Aspose.Email.Clients.Smtp.SmtpClient e envie o e-mail.
// Enviar e-mail via SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Código fonte

A seguir está o código-fonte completo de importação de documento do MS Word como um corpo de e-mail usando C#.

// Carregar um documento do Word do disco
Document wordDocument = new Document("Word.docx");

// Salvar documento como MHTML no fluxo de memória
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Definir posição para 0
mhtmlStream.Position = 0;

// Criar mensagem de e-mail de MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Definir campos de e-mail
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";

// Enviar e-mail via SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Obtenha uma licença de API gratuita

Você pode experimentar a API sem limitações de avaliação gratuitamente. Obtenha uma licença temporária gratuita agora.

Conclusão

Neste artigo, você aprendeu como importar um documento do Word como um corpo de email usando C#. Além disso, o exemplo de código mostrou como enviar a mensagem de email composta usando um cliente SMTP. Você pode explorar mais sobre as APIs usadas no artigo visitando as documentações a seguir.

Veja também