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

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

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

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

  1. Создайте экземпляр класса MailMessage.
  2. Установите тему сообщения с помощью метода setSubject() .
  3. Установите тело сообщения с помощью метода setHtmlBody() .
  4. Установите отправителя электронной почты с помощью метода setFrom() .
  5. Установите получателя в поле Кому с помощью метода getTo().add() .
  6. Установите получателя в поле Копия с помощью метода getCC().add() .
  7. Вызовите метод Save() , чтобы сохранить файл сообщения на диск в форматах MSG, EML и MHT.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the resource directory.
String dataDir = Utils.getSharedDataDir(CreateNewEmail.class) + "email/";
// Create a new instance of MailMessage class
MailMessage message = new MailMessage();
// Set subject of the message
message.setSubject("New message created by Aspose.Email for Java");
// Set Html body
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>");
// Set sender information
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));
// Add TO recipients
message.getTo().addMailAddress(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getTo().addMailAddress(new MailAddress("to2@domain.com", "Recipient 2", false));
//Add CC recipients
message.getCC().addMailAddress(new MailAddress("cc1@domain.com", "Recipient 3", false));
message.getCC().addMailAddress(new MailAddress("cc2@domain.com", "Recipient 4", false));
// Save message in EML, MSG and MHTML formats
message.save(dataDir + "Message_out.eml", SaveOptions.getDefaultEml());
message.save(dataDir + "Message_out.msg", SaveOptions.getDefaultMsg());
message.save(dataDir + "Message_out.mhtml", SaveOptions.getDefaultMhtml());
//Save as OFT
try {
MsgSaveOptions options = SaveOptions.getDefaultMsgUnicode();
options.setSaveAsTemplate(true);
message.save(dataDir + "emlToOft_out.oft", options);
} finally {
if (message != null)
((IDisposable) message).dispose();
}

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

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

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
// Create an Instance of MailMessage class
MailMessage message = new MailMessage();
// Specify From address
message.setFrom(new MailAddress("sender@sender.com"));
// Specify recipients’ mail addresses
MailAddressCollection toList = new MailAddressCollection();
toList.add("receiver1@receiver.com");
toList.add("receiver2@receiver.com");
toList.add("receiver3@receiver.com");
message.setTo(toList);
// Specify CC addresses
MailAddressCollection ccList = new MailAddressCollection();
ccList.add("CC1@receiver.com");
ccList.add("CC2@receiver.com");
message.setCC(ccList);
// Specify BCC addresses
MailAddressCollection bccList = new MailAddressCollection();
bccList.add("Bcc1@receiver.com");
bccList.add("Bcc2@receiver.com");
message.setBcc(bccList);
// Create an instance of SmtpClient Class
SmtpClient client = new SmtpClient();
// Specify your mailing host server, Username, Password, Port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);
try
{
// Client.Send will send this message
client.send(message);
// Display ‘Message Sent’, only if message sent successfully
System.out.println("Message sent");
}
catch (Exception ex)
{
ex.printStackTrace();
}

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

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
MailMessage message = new MailMessage("Sender Name <sender@from.com>", "Kyle Huang <kyle@to.com>");
// A To address with a friendly name can also be specified like this
message.getTo().addMailAddress(new MailAddress("kyle@to.com", "Kyle Huang"));
// Specify Cc and Bcc email address along with a friendly name
message.getCC().addMailAddress(new MailAddress("guangzhou@cc.com", "Guangzhou Team"));
message.getBcc().addMailAddress(new MailAddress("ahaq@bcc.com", "Ammad ulHaq "));
// Create an instance of SmtpClient Class and Specify your mailing host server, Username, Password, Port
SmtpClient client = new SmtpClient();
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);
try
{
// Client.Send will send this message
client.send(message);
System.out.println("Message sent");
}
catch (Exception ex)
{
ex.printStackTrace();
}

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

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

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

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
MailMessage message = new MailMessage();
// Specify HtmlBody
message.setHtmlBody("<html><body>This is the HTML body</body></html>");

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
MailMessage message = new MailMessage();
// Creates AlternateView to view an email message using the content specified in the //string
AlternateView alternate = AlternateView.createAlternateViewFromString("Alternate Text");
// Adding alternate text
message.getAlternateViews().addItem(alternate);

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

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

  • US-ASCII - семиразрядный ASCII, также известный как ISO646-US, также известный как базовый латинский блок набора символов Unicode
  • ISO-8859-1 - ISO латинский алфавит No. 1, также известный как ISO-LATIN-1
  • UTF-8 - восьмиразрядный формат преобразования UCS
  • UTF-16BE - шестнадцатизначный формат преобразования UCS, порядок байтов big-endian
  • UTF-16LE - шестнадцатизначный формат преобразования UCS, порядок байтов little-endian
  • UTF-16 - шестнадцатизначный формат преобразования UCS, порядок байтов определяется необязательной меткой порядка байтов

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

  1. Создайте экземпляр класса MailMessage.
  2. Укажите отправителя, получателя и HTML тело электронной почты в экземпляре MailMessage.
  3. Укажите значение свойства BodyEncoding.
  4. Создайте экземпляр класса SmtpClient и отправьте электронное письмо с помощью метода Send.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
MailMessage message = new MailMessage();
// Specify From, To, HtmlBody, BodyEncoding field
message.setFrom(new MailAddress("sender@sender.com"));
message.getTo().add("receiver@receiver.com");
message.setHtmlBody("<html><body>This is the Html body</body></html>");
message.setBodyEncoding(Charset.forName("US-ASCII"));
// Create an instance of SmtpClient Class and Specify your mailing host server, Username, Password and Port
SmtpClient client = new SmtpClient();
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);
try
{
// Client.Send will send this message
client.send(message);
}
catch (Exception ex)
{
ex.printStackTrace();
}

Особенности MailMessage

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Add by SMTP server in delivery emails
Received: from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700
// Add by SMTP server in delivery emails
Return-Path: <xyz@oikoscucine.it>
// Add by SMTP server in delivery emails
Received: from 195.120.225.20 (HELO mail.oikoscucine.it)
by aspose.com with esmtp (:1CYY+<LA*- *1WK@)
id Q8,/O/-.N83@7-9M
for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300
From: "XYZ" <xyz@oikoscucine.it>
To: <abc@aspose.com>
Subject: For ABC
// Date will set the Date field, outlook will show this as
Date: Thu, 22 Feb 2007 20:58:51 +0300
Message-ID: <01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0006_01C7569A.58DF4CD0"
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Thread-Index: Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==
X-Read: 1

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create a new message
MailMessage message = new MailMessage();
message.setFrom(new MailAddress("sender@gmail.com"));
message.getTo().add("receiver@gmail.com");
message.setSubject("Using MailMessage Features");
// Specify message date
message.setDate(new Date());
// Specify message priority
message.setPriority(MailPriority.High);
// Specify message sensitivity
message.setSensitivity(MailSensitivity.Normal);
// Specify options for delivery notifications
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);

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

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

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
MailMessage message = new MailMessage();
// Specify From, To, HtmlBody, DeliveryNotificationOptions field
message.setFrom(new MailAddress("sender@sender.com"));
message.getTo().add("receiver@receiver.com");
message.setHtmlBody("<html><body>This is the Html body</body></html>");
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "sender@sender.com");
message.getHeaders().add("Disposition-Notification-To", "sender@sender.com");
// Create an instance of SmtpClient Class and Specify your mailing host server, Username, Password and Port
SmtpClient client = new SmtpClient();
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);
try
{
// Client.Send will send this message
client.send(message);
}
catch (Exception ex)
{
ex.printStackTrace();
}

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

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

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

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

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


 Ответить-на: reply@reply.com

От: sender@sender.com

Кому: guangzhou@guangzhoo.com

Тема: тестовое письмо

Дата: 6 Мар 2006 8:2:2 +0800

X-Mailer: Aspose.Email

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create a new instance of MailMessage class
MailMessage message = new MailMessage();
// Set subject of the message
message.setSubject("New message created by Aspose.Email for Java");
// Set Html body
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/>" +
"<font color=blue>This line is in blue color</font>");
// Set sender information
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));
// Add TO recipients
message.getTo().addItem(new MailAddress("to@domain.com", "Recipient 1", false));
// Message subject
message.setSubject("Customizing Email Headers");
// Specify Date
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Date date = calendar.getTime();
message.setDate(date);
// Specify XMailer
message.setXMailer("Aspose.Email");
// Specify Secret Header
message.getHeaders().add("secret-header", "mystery");
// Save message to disc
message.save(dataDir + "SetEmailHeaders_out.msg", SaveOptions.getDefaultMsg());

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


 Ответить-на: reply@reply.com

От: sender@sender.com

Кому: receiver1@receiver.com

Копия: receiver2@receiver.com

Скрытая копия: receiver3@receiver.com

Тема: тестовое письмо

Дата: 6 Мар 2006 8:2:2 +0800

X-Mailer: Aspose.Email

секретный-заголовок: mystery

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

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


 Подпись метода

HeaderCollection.insert(String name, String value)

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Insert Header at Specific Location
MailMessage eml = MailMessage.load(dataDir + "test.eml");
eml.getHeaders().insert("Received", "Value");

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Declare message as MailMessage instance
MailMessage message = new MailMessage();
// Specify ReplyTo, from, To, Message subject and secret header field
message.getReplyToList().add("reply@reply.com");
message.setFrom(new MailAddress("sender@sender.com"));
message.getTo().add("receiver1@receiver.com");
message.setSubject("test mail");
message.getHeaders().add("secret-header", "mystery");
// Create an instance of SmtpClient Class and Specify your mailing host server, Username, Password and Port
SmtpClient client = new SmtpClient();
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);
try
{
// Client.Send will send this message
client.send(message);
}
catch (Exception ex)
{
ex.printStackTrace();
}

Подписание писем с помощью DKIM

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String privateKeyFile = "key2.pem";
RSACryptoServiceProvider rsa = PemReader.getPrivateKey(privateKeyFile);
DKIMSignatureInfo signInfo = new DKIMSignatureInfo("test", "yandex.ru");
signInfo.getHeaders().addItem("From");
signInfo.getHeaders().addItem("Subject");
MailMessage mailMessage = new MailMessage("sender@gmail.com", "test@gmail.com");
mailMessage.setSubject("Signed DKIM message text body");
mailMessage.setBody("This is a text body signed DKIM message");
MailMessage signedMsg = mailMessage.dKIMSign(rsa, signInfo);
try
{
SmtpClient client = new SmtpClient("smtp.domain.com",25, "username", "password");
client.send(signedMsg);
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{}

Выполнение объединения почты

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

todo:image_alt_text
Рисунок: Иллюстрация работы объединения почты

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
public static void main(String[] args) {
//create a new MailMessage instance as a template
MailMessage template = new MailMessage();
//add template field to subject
template.setSubject("Hello, #FirstName#");
template.setFrom(MailAddress.to_MailAddress("sale@aspose.com"));
//add template field to receipt
template.getTo().addMailAddress(new MailAddress("#Receipt#", true));
//add template field to html body
//use GetSignment as the template routine, which will provide the same signment.
template.setHtmlBody("Dear #FirstName# #LastName#, &lt;br&gt;&lt;br&gt;Thank you for your interest in &lt;STRONG&gt;Aspose.Network&lt;/STRONG&gt;.&lt;br&gt;&lt;br&gt;Have fun with it.&lt;br&gt;&lt;br&gt;#GetSignature()#");
//create a new TemplateEngine with the template message.
TemplateEngine engine = new TemplateEngine(template);
//register the GetSignment as a template routine, for we use it in the template.
engine.registerRoutine("GetSignature", new TemplateRoutine() {
public Object invoke(Object[] args) {
return getSignature(args);
}
});
//fill a DataTable as data source
DataTable dt = new DataTable();
dt.getColumns().add("Receipt");
dt.getColumns().add("FirstName");
dt.getColumns().add("LastName");
DataRow dr;
dr = dt.newRow();
dr.set("Receipt", "Nancy.Davolio&lt;Nancy@somedomain.com&gt;");
dr.set("FirstName", "Nancy");
dr.set("LastName", "Davolio");
dt.getRows().add(dr);
dr = dt.newRow();
dr.set("Receipt", "Andrew.Fuller&lt;Andrew@somedomain.com&gt;");
dr.set("FirstName", "Andrew");
dr.set("LastName", "Fuller");
dt.getRows().add(dr);
dr = dt.newRow();
dr.set("Receipt", "Janet.Leverling&lt;Janet@somedomain.com&gt;");
dr.set("FirstName", "Janet");
dr.set("LastName", "Leverling");
dt.getRows().add(dr);
MailMessageCollection messages;
try
{
//create the messages from the template and datasource.
messages = engine.instantiate(dt);
}
catch (MailException ex)
{
System.out.println(ex.toString());
}
}
public static Object getSignature(Object[] args) {
return "John Smith&lt;br&gt;Product Lead&lt;br&gt;Aspose Ltd.&lt;br&gt;".concat(DateTime.getNow().toShortDateString());
}