Использование документа Microsoft Word в качестве тела сообщения и отправка электронной почты

Эта статья показывает, как использовать документ Microsoft Word в качестве тела электронной почты и отправить его получателям. Пример документа представляет собой счет-фактуру из базы данных Northwind, экспортированную в формат Microsoft Word. Aspose.Email для .NET обрабатывает сетевые протоколы и функции Microsoft Outlook, но не может работать с документами Microsoft Word. Чтобы обойти это, в примерах этой статьи используется Aspose.Words для .NET для загрузки документа Word и конвертации его в формат MHTML. Aspose.Email для .NET использует документ MHTML в теле электронной почты.

Использование документов Microsoft Word в качестве тела электронной почты

Программные примеры ниже иллюстрируют, как отправить документ Word в качестве тела электронной почты, используя Aspose.Words для .NET и Aspose.Email для .NET:

  1. Загрузите документ Microsoft Word с использованием класса Document из Aspose.Words для .NET.
  2. Сохраните его в формате MHTML.
  3. Загрузите документ MHTML с использованием класса MailMessage из Aspose.Email для .NET, чтобы установить тело электронной почты.
  4. Установите другие свойства сообщения, используя различные свойства и методы класса MailMessage.
  5. Отправьте электронное письмо, используя класс SMTPClient из Aspose.Email для .NET.

Исходный документ, счет-фактура, экспортированный в Microsoft Word из примера Microsoft Northwind, представлен ниже.

todo:image_alt_text

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

todo:image_alt_text

HTML-форматирование и изображения сохраняются, как в оригинальном исходном документе, при просмотре в Outlook или в веб-клиенте электронной почты, таком как Gmail или Hotmail. Ниже представлено скриншот сообщения при открытии с помощью Gmail в браузере Chrome.

todo:image_alt_text

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Load a Word document from disk and save it to stream as MHTML
Document wordDocument = new Document(folderPath + "invoice.docx");
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Load the MHTML in a MailMessage object
mhtmlStream.Position = 0;
using (MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions()))
{
    message.Subject = "Отправка счета по электронной почте";
    message.From = "sender@gmail.com";
    message.To = "recipient@gmail.com";

    // Save the message in MSG format to disk
    message.Save(folderPath + "WordDocAsEmailBody_out.msg", SaveOptions.DefaultMsgUnicode);

    // Send the email message
    using (SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "password"))
    {
        client.SecurityOptions = SecurityOptions.SSLExplicit;
        client.Send(message);
    }
}