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

Создать новое электронное письмо

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

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

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

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

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

  • To — адреса получателей указываются в поле ‘To’. Получатели в поле ‘To’ являются основной аудиторией сообщения. Может быть более одного адреса получателя.
  • Cc — CC означает «копия», «карбон‑копия» (carbon copy) или «вежливая копия» (courtesy copy) и позволяет добавить получателей, которым нужно видеть письмо, но которые не обязаны действовать по нему. Например, менеджеры или члены вашей команды, которым необходимо быть в курсе разговора. С Aspose.Email адреса CC можно указать в коде. Таким образом, автоматические письма или все письма на конкретный адрес могут копироваться соответствующим сотрудникам.
  • Bcc — скрытая копия (blind carbon copy), позволяет отправить письмо получателю, скрыв его от остальных получателей. В то время как CC виден получателям, Bcc скрыт. Предназначен для скрытых уведомлений. 

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

  1. Создайте экземпляр класса MailMessage.
  2. Укажите адреса From и несколько адресов To, Cc и Bcc, используя экземпляр MailMessage.
  3. Создайте экземпляр класса SmtpClient и отправьте письмо, используя метод Send.

Пример кода ниже показывает, как можно указать несколько адресов To, CC и BCC.

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

Ниже приведённые примеры кода показывают, как изменить адреса электронной почты на читаемые имена в письме. Читаемое имя — это более человекопонятное название, например John Smith вместо js346@domain.com. При отправке письма можно связать читаемое имя с адресом электронной почты в конструкторе класса MailMessage.

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

  • Создайте экземпляр класса MailMessage и укажите адреса электронной почты в полях To и From, а также дружелюбные имена.
  • Укажите адреса Cc и Bcc вместе с дружелюбными именами, вызвав конструктор класса 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 в коллекции, и разрешаются.
  • BaseUri используется чтением письма для разрешения относительных URL‑адресов внутри тела, а также для разрешения относительных URL‑адресов Content Link в коллекции LinkedResources.

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

Функции MailMessage

Этот MailMessage класс представляет содержимое сообщения письма. Экземпляры MailMessage классы используются для построения сообщения письма, которое передаётся SMTP‑серверу для доставки с помощью SmtpClient класс. Эта статья показывает, как использовать MailMessage класс utility предоставляет возможности для управления следующими функциями письма:

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

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

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

Запрос уведомления о прочтении

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

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

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

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

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

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

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

Обычно заголовок письма содержит следующие поля:

  • To: Адреса получателей указываются в поле To. Получатели в поле To являются основной аудиторией сообщения. Может быть более одного адреса получателя.
  • From: Это поле содержит адрес электронной почты отправителя сообщения.
  • Cc: Позволяет отправлять сообщение как "Carbon Copy" или "Courtesy Copy". То есть получатель не обязан отвечать или действовать. Обычно CC используется для уведомления руководителей.
  • Bcc: Сокращение от Blind Carbon Copy, обозначает отправку сообщения нескольким получателям так, чтобы получатели не видели полный список адресатов. Предназначено для скрытого уведомления.
  • ReplyTo: Это поле указывает, куда отправитель хочет получать ответы.
  • Subject: Заголовок, тема. Часто используется как индикатор ветки для сообщений, отвечающих или комментирующих другие сообщения.
  • Date: Этот заголовок указывает дату (и время). Обычно это дата, когда сообщение было составлено и отправлено.
  • 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: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

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

  • Создать экземпляр MailMessage класс.
  • Укажите To, From, CC, Bcc, ReplyTo, Subject, Date и 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: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

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

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

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

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

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

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