Создание и отправка электронной почты Outlook Java

Aspose.Email для Java — это мощный API для обработки электронной почты, который предоставляет все основные, а также расширенные функции для управления электронной почтой. Он позволяет создавать сообщения электронной почты Outlook, читать существующие электронные письма и преобразовывать сообщения MSG, EML, PST, OST, MBOX и MHT в другие форматы из ваших приложений Java. В этой статье я продемонстрирую некоторые основные, но важные функции создания и отправки электронных писем Outlook с помощью Java.

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

API электронной почты Java — установка

Aspose.Email для Java можно загрузить из раздела Загрузки или установить с помощью следующих конфигураций Maven.

Репозиторий:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Зависимость:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>20.3</version>
    <classifier>jdk16</classifier>
</dependency>

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

Aspose.Email для Java позволяет создавать сообщения электронной почты и сохранять их в желаемом формате электронной почты, включая EML, EMLX, MSG и MHTML. Ниже приведены шаги для создания сообщения электронной почты и сохранения его в виде файла.

  • Создайте экземпляр класса MailMessage.
  • Установите свойства сообщения, такие как «Тема», «Тело», «Кому», «Копия» и т. д.
  • При необходимости добавьте вложения.
  • Сохраните сообщение электронной почты в желаемом формате, используя метод MailMessage.save().

В следующем примере кода показано, как создать сообщение электронной почты Outlook с помощью Java.

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setBody("This is the body of the email.");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Добавить к получателям и получателям копии
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Добавить вложения
message.getAttachments().addItem(new Attachment("word.docx"));

// Сохранить сообщение в форматах EML, EMLX, MSG и MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml());
message.save("EmailMessage.emlx", SaveOptions.createSaveOptions(MailMessageSaveType.getEmlxFormat()));
message.save("EmailMessage.msg", SaveOptions.getDefaultMsgUnicode());
message.save("EmailMessage.mhtml", SaveOptions.getDefaultMhtml());

Создайте электронное письмо с телом HTML с помощью Java

В предыдущем примере мы просто создали текстовое электронное письмо и сохранили его как файл электронной почты. Тем не менее, большинство электронных писем сегодня создаются с помощью HTML, чтобы хорошо организовать и представить содержимое электронной почты. В этом случае теги HTML используются для указания макета электронной почты. Давайте посмотрим, как создать электронное письмо с телом HTML, используя Aspose.Email для Java.

  • Используйте класс MailMessage для создания нового сообщения электронной почты.
  • Установите Тему, Кому, Копию и другие свойства.
  • Установите тело письма, используя метод MailMessage.setHtmlBody(string).
  • Сохраните сообщение электронной почты, используя метод MailMessage.save().

В следующем примере кода показано, как создать электронное письмо с телом HTML с помощью Java.

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Добавить к получателям и получателям копии
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Сохранить сообщение в форматах EML, EMLX, MSG и MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

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

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

  • Создайте объект класса MailMessage.
  • Установите свойства электронной почты, такие как «Тема», «Кому», «Копия» и т. д.
  • Установите стандарт кодирования с помощью метода MailMessage.setBodyEncoding().
  • Создайте и сохраните электронное письмо, используя метод MailMessage.save().

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

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Укажите кодировку 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Добавить к получателям и получателям копии
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Сохранить сообщение в форматах EML, EMLX, MSG и MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Отправка электронных писем Outlook с помощью Java

После того, как вы создали электронное письмо, вы можете отправить его получателям с помощью простого протокола передачи почты (SMTP). Ниже приведены шаги для отправки сообщения электронной почты с помощью Aspose.Email для Java.

  • Создайте новое сообщение электронной почты или загрузите существующее с помощью класса MailMessage.
  • Создайте экземпляр класса SmtpClient и задайте его хост, имя пользователя, пароль и порт.
  • Отправьте электронное письмо с помощью метода SmtpClient.send().

В следующем примере кода показано, как отправить электронное письмо через SMTP-клиент в Java.

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Укажите кодировку 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Добавить к получателям и получателям копии
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Создайте экземпляр класса SmtpClient
SmtpClient client = new SmtpClient();

// Укажите хост-сервер почтовой рассылки, Имя пользователя, Пароль, Порт
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send отправит это сообщение
	client.send(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Отправляйте электронные письма асинхронно с помощью Java

Aspose.Email для Java также позволяет отправлять электронные письма асинхронно. Для этого вы можете использовать метод SmtpClient.beginSend(). В следующем примере кода показано, как асинхронно отправлять электронные письма с помощью Java.

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Укажите кодировку 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Добавить к получателям и получателям копии
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Создайте экземпляр класса SmtpClient
SmtpClient client = new SmtpClient();

// Укажите хост-сервер почтовой рассылки, Имя пользователя, Пароль, Порт
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend отправит это сообщение
	client.beginSend(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Отправка электронных писем с уведомлением о прочтении с использованием Java

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

  • Создайте новое сообщение электронной почты, используя класс MailMessage.
  • Установите параметр уведомления о доставке с помощью метода MailMessage.setDeliveryNotificationOptions().
  • Добавьте информацию о квитанции в заголовки электронной почты.
  • Используйте класс SmtpClient для отправки электронной почты.

В следующем примере кода показано, как отправить электронное письмо, содержащее уведомление о прочтении, с помощью Java.

MailMessage message = new MailMessage();

// Установите тему сообщения, тело и информацию об отправителе
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Установить параметры уведомлений
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Добавить к получателям 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Создайте экземпляр класса SmtpClient
SmtpClient client = new SmtpClient();

// Укажите хост-сервер почтовой рассылки, Имя пользователя, Пароль, Порт
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send отправит это сообщение
	client.send(message);
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Отправляйте массовые электронные письма с помощью Java

Может быть случай, когда вам нужно отправить большое количество разных писем. В этом случае вы можете просто добавить все сообщения электронной почты в объект MailMessageCollection и передать его SMTP-клиенту для отправки. В следующем примере кода показано, как отправлять большое количество электронных писем с помощью Java.

// Создайте экземпляры класса MailMessage и укажите «Кому», «От», «Тема» и «Сообщение».
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Создайте экземпляр MailMessageCollection и добавьте в него сообщения электронной почты.
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Создайте SmtpClient и укажите сервер, порт, имя пользователя и пароль
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Отправка сообщений
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

Живые демонстрации

Вывод

В этом посте я показал вам, как создавать сообщения электронной почты Outlook и сохранять их в форматах EML, MSG и MTH с помощью Java. Кроме того, также обсуждаются различные способы отправки электронных писем на языке Java с использованием клиента STMP. Вы можете узнать больше о [библиотеке электронной почты Java] Aspose19, используя документацию.

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