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

Создать новое сообщение электронной почты

Aspose.Email для Java позволяет разработчикам создавать сообщения MIME (многоцелевые расширения электронной почты Интернета) с нуля. Основным классом для этой цели в API Aspose.Email для Java является MailMessage класс. В этом разделе описаны шаги, необходимые для создания сообщений электронной почты в форматах файлов EML, MSG и MTH с использованием Aspose.Email для Java.

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

  1. Создайте экземпляр класса MailMessage.
  2. Задайте тему сообщения, используя setSubject() method.
  3. Задайте тело сообщения, используя setHtmlBody() method.
  4. Настройте отправителя электронной почты, используя setFrom() method.
  5. Укажите получателя в поле TO поле, используя getTo().add() method.
  6. Укажите получателя в поле CC поле, используя getCC().add() method.
  7. Позвоните Save() метод сохранения файла сообщения на диск в форматах MSG, EML и MHT.  

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

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

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

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

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

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

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

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

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

  • Создайте экземпляр класса MailMessage и укажите адреса электронной почты в поле To and From поля вместе с понятными именами.
  • Укажите адреса электронной почты Cc и Bcc, а также удобные имена, вызвав конструктор класса MailMessage в экземпляре MailMessage.
  • Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.

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

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

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

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

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

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

Настройка тела HTML

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

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

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

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

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

Указание кодировки текста письма

Тип содержимого определяет формат содержимого электронного письма: набор символов. Например, в java.nio.Charset есть несколько распространенных наборов символов:

  • US-ASCII — семибитный ASCII, также известный как ISO646-US, также известный как базовый латинский блок набора символов Unicode
  • ISO-8859-1 - латинский алфавит ИСО № 1, также известный как ISO-LATIN-1
  • UTF-8 — восьмибитный формат преобразования UCS
  • UTF-16BE - шестнадцатибитный формат преобразования UCS, порядок байтов с обратным порядком байтов
  • UTF-16LE - шестнадцатибитный формат преобразования UCS, порядок байтов с прямым порядком байтов
  • UTF-16 — шестнадцатибитный формат преобразования UCS, порядок байтов определяется дополнительным знаком порядка байтов

Aspose.Email использует BodyEncoding свойство класса MailMessage для указания кодировки текста письма. Чтобы закодировать текст сообщения электронной почты, выполните следующие действия:

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

Функции почтовых сообщений

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

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

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

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

Запрос квитанции о прочтении

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

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

Запросы на получение квитанции о прочтении могут быть выполнены не всегда по следующим причинам:

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

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

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

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

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

  • Кому: адреса получателей можно указать в поле To поле. To получатели поля — основная аудитория сообщения. Адресов получателей может быть несколько.
  • От: в этом поле указан адрес электронной почты отправителя сообщения.
  • Cc: позволяет пользователям отправлять сообщения в виде «точной копии» или «любезной копии». То есть получатель не должен отвечать или действовать. Как правило, руководящий персонал уведомляется с помощью CC.
  • Bcc: расшифровывается как Blind Carbon Copy и означает практику отправки сообщения нескольким получателям таким образом, чтобы полученное сообщение не содержало полного списка получателей. Оно предназначено для скрытого уведомления.
  • ReplyTo: это поле заголовка предназначено для указания того, куда отправитель хочет отправить ответы.
  • Тема: Заголовок, заголовок, тема. Часто используется в качестве индикатора темы для сообщений, отвечающих на другие сообщения или комментирующих их.
  • Дата: в этом заголовке указаны дата (и время). Обычно это дата составления и отправки сообщения.
  • XMailer: информация о клиентском программном обеспечении автора. Пример: программа X-Mailer: Aspose.Email. XMailer используется почтовыми клиентами. Разные почтовые клиенты будут иметь разные значения XMailer. Значение XMailer в MS Outlook — Microsoft Office Outlook, сборка 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 class.
  • Укажите «Кому», «От», «CC», «Bcc», «ReplyTo», «Тема», «Дата» и «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

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

The Add метод headersCollection вставляет заголовок в конец коллекции. Однако иногда может потребоваться вставить заголовок в определенном месте. В таком случае метод Add не поможет. Для этого используйте Insert метод коллекции заголовков. Если коллекция содержит заголовки с одинаковыми именами, этот заголовок будет вставлен перед другими заголовками с таким же именем. Ниже приведена подпись метода Insert и пример кода для использования.


 Method Signature

HeaderCollection.insert(String name, String value)

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

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

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

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

Подписывайте электронные письма с помощью DKIM

Aspose.Email позволяет подписывать электронную почту с помощью DKIM (почта, идентифицированная доменными ключами). Это позволяет организации взять на себя ответственность за передаваемое сообщение (о DKIM). DKIM добавляет цифровую подпись к заголовкам сообщений электронной почты, которую получатели могут проверить. Открытый ключ отправителя позволяет получателю проверить, соответствует ли подпись содержимому сообщения. Класс MailMessage dKIMSign метод используется для задания криптографической и сигнатурной информации для подписи сообщения. В следующем фрагменте кода показано, как подписывать электронные письма с помощью DKIM.

Выполнение слияния писем

Объединение писем позволяет создавать и отправлять пакеты похожих сообщений электронной почты. Суть писем одна и та же, но их содержимое можно персонализировать. Как правило, контактные данные получателя (имя, отчество, компания и т. д.) используются для персонализации письма.

|todo:image_alt_text| |: - | |Рис.: Иллюстрация того, как работает слияние писем|

Чтобы выполнить слияние писем с помощью Aspose.Email, выполните следующие шаги:

  1. Создайте функцию с подписью имени
  2. Создайте экземпляр MailMessage class.
  3. Укажите отправителя, получателя, тему и тело.
  4. Создайте подпись в конце письма.
  5. Создайте экземпляр TemplateRoutine класс и сдайте его MailMessage instance.
  6. Сделайте подпись в TemplateRoutine instance.
  7. Создайте экземпляр DataTable class.
  8. Добавьте столбцы Receipt, FirstName и LastName в качестве источников данных в классе DataTable
  9. Создайте экземпляр DataRow class
  10. Укажите адрес получения, имя и фамилию в объекте DataRow
  11. Создайте экземпляр MailMessageCollection class
  12. Укажите TemplateRoutine и экземпляры DataTable в MailMessageCollection instance.
  13. Создайте экземпляр SmtpClient класс и укажите сервер, порт, имя пользователя и пароль
  14. Отправляйте электронные письма с помощью SmtpClient метод класса BulkSendAsync

Приведенный ниже код отправляет электронное письмо одному человеку из трех других.