Использование рабочей книги Microsoft Excel в качестве тела сообщения и отправка электронной почты

Contents
[ ]

В этой статье используется рабочая книга Microsoft Excel в качестве тела электронной почты и отправляется получателям. Aspose.Email для .NET работает с сетевыми протоколами и функциями Microsoft Outlook и не может обрабатывать рабочие книги Microsoft Excel. Чтобы обойти это, примеры в этой статье используют Aspose.Cells для .NET для загрузки рабочей книги Excel и конвертации ее в поток HTML. Aspose.Email для .NET затем использует поток HTML в теле электронной почты. Программный пример показывает, как отправить рабочий лист Excel в качестве тела электронной почты с использованием Aspose.Cells для .NET и Aspose.Email для .NET.

  1. Загрузка рабочей книги Microsoft Excel с использованием класса Workbook из Aspose.Cells
  2. Сохраните загруженную книгу в MemoryStream в формате HTML
  3. Получите HTML из потока в виде строки
  4. Определите новый объект MailMessage и установите его HtmlBody на HTML-контент из шага 3
  5. Отправьте электронную почту, используя класс SmtpClient из Aspose.Email для .NET

Исходная рабочая книга Excel выглядит следующим образом:

todo:image_alt_text

Когда сообщение было отправлено и получено в Microsoft Outlook, оно выглядит как сообщение ниже:

todo:image_alt_text

Следующий фрагмент кода показывает, как отправить рабочий лист MS Excel в качестве тела сообщения и отправить электронную почту.

// 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);