Usando uma Planilha do Microsoft Excel como o Corpo da Mensagem e Enviando Email
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.
- Carregar uma Pasta de Trabalho do Microsoft Excel usando a classe Workbook do Aspose.Cells
- Salvar a pasta de trabalho carregada em MemoryStream no formato HTML
- Obter o HTML do fluxo como String
- Definir um novo objeto MailMessage e definir seu HtmlBody para o conteúdo HTML do passo 3
- 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:
Quando a mensagem foi enviada e recebida no Microsoft Outlook, ela se parece com a mensagem abaixo:
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); |