Отправить документ Word по электронной почте С#

Презентация тела электронного письма является одним из важных факторов для привлечения читателей. Таким образом, электронные письма хорошо форматируются с использованием заголовков, подзаголовков, таблиц, изображений и т. д. Однако большинство встроенных редакторов электронной почты не предоставляют расширенных параметров форматирования. Чтобы обойти это ограничение, в этой статье рассказывается, как составлять сообщения электронной почты, используя документы Word в качестве тела сообщения в C#.

API C# для импорта документа Word в электронную почту

Чтобы импортировать содержимое из документа Word, мы будем использовать API Aspose.Words for .NET. Принимая во внимание, что для составления и отправки электронного письма мы будем использовать возможности Aspose.Email для .NET. Оба вышеупомянутых API можно загрузить как DLL или установить через NuGet.

Скачать библиотеки DLL

Установить через NuGet

PM> Install-Package Aspose.Words
PM> Install-Package Aspose.Email

Отправить документ Word в теле электронной почты с помощью С#

  1. Загрузите документ Word с помощью класса Aspose.Words.Document и сохраните его как MHTML в объекте MemoryStream.
// Загрузить документ Word с диска
Document wordDocument = new Document("Word.docx");

// Сохранить документ как MHTML в поток памяти
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);
  1. Загрузите MHTML из объекта MemoryStream в объект Aspose.Email.MailMessage и установите тему, в поля электронной почты и из них.
// Установить позицию на 0
mhtmlStream.Position = 0;

// Создать сообщение электронной почты из MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Установить поля электронной почты
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";
  1. Настройте SMTP-клиент с помощью класса Aspose.Email.Clients.Smtp.SmtpClient и отправьте электронное письмо.
// Отправить электронную почту через SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Исходный код

Ниже приведен полный исходный код импорта документа MS Word в виде тела электронной почты с использованием C#.

// Загрузить документ Word с диска
Document wordDocument = new Document("Word.docx");

// Сохранить документ как MHTML в поток памяти
MemoryStream mhtmlStream = new MemoryStream();
wordDocument.Save(mhtmlStream, SaveFormat.Mhtml);

// Установить позицию на 0
mhtmlStream.Position = 0;

// Создать сообщение электронной почты из MHTML
MailMessage message = MailMessage.Load(mhtmlStream, new MhtmlLoadOptions());

// Установить поля электронной почты
message.Subject = "Sending Invoice in Email";
message.From = "sender@gmail.com";
message.To = "recipient@gmail.com";

// Отправить электронную почту через SMTP
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd");
client.SecurityOptions = SecurityOptions.SSLExplicit;                
client.Send(message);

Получите бесплатную лицензию API

Вы можете бесплатно попробовать API без ограничений по оценке. Получить бесплатную временную лицензию сейчас.

Вывод

В этой статье вы узнали, как импортировать документ Word в качестве тела электронной почты с помощью C#. Кроме того, в примере кода показано, как отправить составленное сообщение электронной почты с помощью SMTP-клиента. Вы можете узнать больше об API, используемых в статье, посетив следующую документацию.

Смотрите также