Usando uma Planilha do Microsoft Excel como o Corpo da Mensagem e Enviando Email

Contents
[ ]

Este artigo usa uma pasta de trabalho do Microsoft Excel como o corpo do email e a envia para os destinatários. Aspose.Email para .NET lida com protocolos de rede e recursos do Microsoft Outlook e não consegue manipular pastas de trabalho do Microsoft Excel. Para superar isso, os exemplos neste artigo usam Aspose.Cells para .NET para carregar a pasta de trabalho do Excel e convertê-la em um fluxo HTML. Aspose.Email para .NET, então, utiliza o fluxo HTML no corpo do email. O exemplo de programação mostra como enviar uma planilha do Excel como corpo do email usando Aspose.Cells para .NET e Aspose.Email para .NET.

  1. Carregar uma Pasta de Trabalho do Microsoft Excel usando a classe Workbook do Aspose.Cells
  2. Salvar a pasta de trabalho carregada em MemoryStream no formato HTML
  3. Obter o HTML do fluxo como String
  4. Definir um novo objeto MailMessage e definir seu HtmlBody para o conteúdo HTML do passo 3
  5. Enviar o email usando a classe SmtpClient do Aspose.Email para .NET

A pasta de trabalho do Excel de origem pode ser vista como segue:

todo:image_alt_text

Quando a mensagem foi enviada e recebida no Microsoft Outlook, ela se parece com a mensagem abaixo:

todo:image_alt_text

O seguinte trecho de código mostra como enviar uma Planilha do MS Excel como o Corpo da Mensagem e Enviar Email.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory
string dataDir = RunExamples.GetDataDir_KnowledgeBase();
// Load the desired workbook from disk
Workbook workbook = new Workbook(dataDir + "Data.xlsx");
// Save the workbook to Memory Stream in HTML format
MemoryStream ms = new MemoryStream();
workbook.Save(ms, SaveFormat.Html);
ms.Position = 0;
// Define a StreamReader object with the above MemoryStream
StreamReader sr = new StreamReader(ms);
// Load the saved HTML from StreamReader now into a string variable
string strHtmlBody = sr.ReadToEnd();
// Define a new Message object and set its HtmlBody
MailMessage message = new MailMessage();
message.HtmlBody = strHtmlBody;
message.Subject = "Inline Excel Message";
message.From = "sender@abc.com";
message.To = "receiver@xyz.com";
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Username = "Username";
client.Password = "Password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.Auto;
client.Send(message);