Использование рабочей книги Microsoft Excel в качестве тела сообщения и отправка электронной почты
В этой статье используется рабочая книга 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.
- Загрузка рабочей книги Microsoft Excel с использованием класса Workbook из Aspose.Cells
- Сохраните загруженную книгу в MemoryStream в формате HTML
- Получите HTML из потока в виде строки
- Определите новый объект MailMessage и установите его HtmlBody на HTML-контент из шага 3
- Отправьте электронную почту, используя класс SmtpClient из Aspose.Email для .NET
Исходная рабочая книга Excel выглядит следующим образом:
Когда сообщение было отправлено и получено в Microsoft Outlook, оно выглядит как сообщение ниже:
Следующий фрагмент кода показывает, как отправить рабочий лист 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); |