Создание и настройка содержимого электронных писем

Создание нового электронного сообщения

Класс MailMessage представляет электронное сообщение и позволяет разработчикам создавать новые электронные сообщения. Основные свойства электронной почты, такие как От, Кому, Тема и тело, могут быть легко прикреплены к вновь созданному электронному сообщению. Аналогичным образом мы можем сохранить электронное сообщение в различных форматах, таких как EML, MSG и MHTML.

  • Создайте экземпляр класса MailMessage.
  • Установите свойства электронного сообщения.
  • Сохраните электронное сообщение в различных форматах.

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

Указание нескольких получателей

MailMessage представляет собой электронное сообщение. Экземпляры класса MailMessage используются для создания электронных сообщений, которые передаются на SMTP-сервер с использованием класса SmtpClient. В этом разделе показано, как указать более одного адреса электронной почты. Адреса электронной почты могут быть указаны с помощью класса MailMessage. Адреса электронной почты, используемые в классе MailMessage:

  • Кому - Адреса получателей могут быть указаны в поле ‘Кому’. Получатели в поле ‘Кому’ составляют основную аудиторию сообщения. Может быть более одного адреса получателя
  • Копия - CC означает “углеродная копия” или “копия для вежливости” и позволяет вам добавить адресатов электронной почты, которые должны видеть электронное письмо, но от которых не ожидается непосредственной реакции. Например, менеджеры или члены вашей команды, которые должны быть в курсе разговора. С помощью Aspose.Email адреса CC могут быть указаны в вашем коде. Таким образом, автоматические электронные письма или все электронные письма на определенный адрес могут быть скопированы соответствующему персоналу.
  • Скрытая копия - Bcc, скрытая углеродная копия, позволяет отправить электронное письмо получателю, скрытому от других получателей. В то время как CC отображается в информации о электронном письме, которую видят основные получатели, Bcc - нет. Оно предназначено для скрытого уведомления.

Чтобы указать несколько адресов электронной почты в электронном сообщении, выполните следующие шаги:

  1. Создайте экземпляр класса MailMessage.
  2. Укажите адреса От и несколько адресов Кому, Копия и Скрытая копия с помощью экземпляра MailMessage.
  3. Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.

Пример кода ниже показывает, как можно указать несколько адресов Кому, Копия и Скрытая копия.

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

Ниже приведены примеры программ, которые демонстрируют, как изменить адреса электронной почты на дружеские имена в электронном сообщении. Дружеское имя - это имя, которое более удобно для восприятия, чем адрес электронной почты, например, Джон Смит вместо js346@domain.com. При отправке электронного письма мы можем ассоциировать дружеское имя с адресом электронной почты в конструкторе класса MailMessage.

Чтобы изменить адреса электронной почты на дружеские имена в электронном сообщении, выполните следующие шаги:

  • Создайте экземпляр класса MailMessage и укажите адреса электронной почты в полях Кому и От вместе с дружескими именами.
  • Укажите адреса электронной почты Копия и Скрытая копия вместе с дружескими именами, вызвав конструктор класса MailMessage в экземпляре MailMessage.
  • Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.

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

Установка тела письма

Класс MailMessage представляет собой электронное сообщение. Экземпляры класса MailMessage используются для создания электронных сообщений, которые передаются на SMTP-сервер для доставки с использованием класса SmtpClient. Тело письма можно указать с помощью класса MailMessage. У электронной почты может быть несколько тел. В классе MailMessage есть два типа тел писем:

  • HTML тело
  • Текстовое тело

В дополнение к HtmlBody и TextBody, Aspose.Email имеет еще два свойства только для чтения, связанные с телом письма:

  • IsBodyText: сообщает пользователю, является ли тело текстом.
  • IsBodyHtml: сообщает пользователю, является ли тело HTML или обычным текстом.

В этой статье показано, как определить текст тела как обычный текст или HTML, установить альтернативный текст и закодировать тело электронного письма.

Установка HTML тела

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

Установка альтернативного текста

Используйте класс AlternateView для указания копий электронного сообщения в другом формате. Например, если вы отправляете сообщение в HTML, вы также можете предоставить версию в обычном тексте на случай, если некоторые из получателей используют почтовые клиенты, которые не могут отображать HTML-контент. Этот класс имеет два свойства, LinkedResources и BaseUri, которые используются для разрешения URL в содержимом электронной почты.

  • LinkedResources представляет собой коллекцию объектов LinkedResources. При рендеринге URL в содержимом электронной почты сначала сопоставляются с URL в Content Link каждого объекта LinkedResources в коллекции LinkedResources и разрешаются.
  • BaseUri используется почтовым клиентом для разрешения относительных URL в теле, а также для разрешения относительных URL контента в коллекции LinkedResources.

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

Функции MailMessage

Класс MailMessage представляет содержимое электронного сообщения. Экземпляры класса MailMessage используются для создания электронного сообщения, которое передается на SMTP-сервер для доставки с использованием класса SmtpClient. В этой статье показано, как использовать утилиты класса MailMessage для управления следующими функциями электронной почты:

  • Дата и время - Через свойство MailMessage Date мы получаем или устанавливаем дату и время электронной почты.
  • Приоритет сообщения - Класс MailPriority определяет уровни приоритета для отправки электронного сообщения. Он может быть низким, нормальным или высоким. Приоритет влияет на скорость передачи и доставку.
  • Чувствительность сообщения - Класс MailSensitivity определяет пять уровней чувствительности.
  • Уведомление о доставке - Уведомления о доставке информируют отправителей о том, что электронное письмо было доставлено в почтовый ящик получателя.

По умолчанию дата является фактической датой, когда сообщение было отправлено, а время - временем, когда оно было отправлено, как отображается в Microsoft Outlook. Однако реальное время доставки электронной почты добавляется самим SMTP-сервером в заголовок письма. Например, ниже приведен обычный заголовок письма, где поле Date задает значение даты.

Ниже представлен кодовый фрагмент, который иллюстрирует, как можно использовать каждую из обсуждаемых выше функций.

Запрос подтверждения чтения

Примеры программ ниже показывают, как можно запросить подтверждение чтения. Свойство перечисления DeliveryNotificationOptions класса MailMessage описывает варианты уведомления о доставке для электронного письма. Чтобы запросить подтверждение чтения после отправки электронного письма, выполните следующие шаги:

  1. Создайте экземпляр класса MailMessage.
  2. Укажите отправителя, получателя и HTML-содержимое для электронного письма в экземпляре MailMessage.
  3. Укажите DeliveryNotificationOptions в других экземплярах MailMessage.
  4. Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.

Запросы на подтверждение чтения могут не всегда выполняться, так как:

  • Почтовый клиент может не реализовать такую функциональность.
  • Конечный пользователь может отключить эту функциональность.
  • Конечный пользователь может выбрать не отправлять подтверждение.

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

Установка заголовков электронной почты

Заголовки электронной почты представляют собой интернет-стандарт, а RFC определяет поля заголовков, которые включены в интернет-электронные сообщения. Заголовок электронной почты может быть указан с помощью класса MailMessage. Обычные типы заголовков определены в классе HeaderType. Это запечатанный класс, работающий как обычная перечисление.

Как правило, заголовок электронной почты содержит следующие поля:

  • Кому: адреса получателей могут быть указаны в поле Кому. Получатели в поле Кому составляют основную аудиторию сообщения. Может быть более одного адреса получателя.
  • От: это поле представляет адрес электронной почты отправителя сообщения.
  • Копия: позволяет пользователям отправлять сообщение как “углеродную копию” или “копию для вежливости”. То есть, от получателя не ожидается ответа или действий. Обычно с помощью CC уведомляют руководящий персонал.
  • Скрытая копия: это означает “Скрытая углеродная копия”, относится к практике отправки сообщения нескольким получателям таким образом, что то, что они получают, не содержит полного списка получателей. Это предназначено для скрытого уведомления.
  • ОтветитьНа: это поле заголовка предназначено для указания, куда отправитель хочет, чтобы приходили ответы.
  • Тема: название, заголовок, тема. Часто используется как индикатор темы для сообщений, отвечающих или комментирующих на другие сообщения.
  • Дата: этот заголовок указывает дату (и время). Обычно это дата, в которой сообщение было составлено и отправлено.
  • XMailer: информация о программном обеспечении клиента отправителя. Пример: X-Mailer: Aspose.Email. XMailer используется почтовыми клиентами. У разных почтовых клиентов будут разные значения XMailer. Значение XMailer для MS Outlook - Microsoft Office Outlook, Build 11.0.5510. Оно игнорируется получателем или почтовым клиентом.

Как правило, заголовок электронной почты выглядит следующим образом:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: тестовое письмо

Date: 6 Мар 2006 8:2:2 +0800

X-Mailer: Aspose.Email

Чтобы настроить заголовок электронной почты, выполните следующие шаги:

  • Создайте экземпляр класса MailMessage.
  • Укажите Кому, От, Копия, Скрытая копия, ОтветитьНа, Тема, Дата и XMailer, используя экземпляр класса MailMessage.
  • Создайте экземпляр класса MimeHeader и укажите секретный заголовок.
  • Добавьте секретный заголовок к экземпляру MailMessage.

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

Этот кодовый фрагмент создает заголовок электронной почты в следующем формате. Это можно увидеть, открыв результирующий файл “MsgHeaders.msg” в Microsoft Outlook и затем просмотрев свойства.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: тестовое письмо

Date: 6 Мар 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

Вставка заголовка в определенное место

Метод Add класса HeadersCollection вставляет заголовок в конец коллекции. Однако иногда может быть необходимо вставить заголовок в конкретное место. В таком случае метод Add не подойдет. Для этого используйте метод Insert класса HeadersCollection. Если коллекция содержит заголовки с одинаковым именем, этот заголовок будет вставлен перед другими заголовками с тем же именем. Следующий кодовый фрагмент показывает, как вставить заголовок в определенное место.

Добавление пользовательских заголовков в электронное письмо

Ниже приведены примеры программ, которые демонстрируют, как указать пользовательский заголовок в электронном сообщении. Заголовок электронной почты может быть указан с помощью класса MailMessage. Чтобы указать пользовательский заголовок в электронном сообщении, выполните следующие шаги:

  1. Создайте экземпляр класса MailMessage.
  2. Укажите значения для поля Кому, От и Тема, используя экземпляр MailMessage.
  3. Добавьте секретный заголовок в экземпляр MailMessage.
  4. Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.

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