отправить документ Word по электронной почте в Java

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

API-интерфейсы Java для импорта документа Word в электронную почту

Чтобы импортировать и отправлять документ Word в теле сообщения электронной почты, мы воспользуемся возможностями API Aspose.Words для Java и Aspose.Email для Java. Первый будет использоваться для сохранения документа Word в формате MHTML, тогда как второй будет использоваться для создания и отправки электронной почты. Вы можете скачать API-интерфейсы из следующих разделов или установить их с помощью конфигураций 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-words</artifactId>
    <version>21.4</version>
    <type>pom</type>
</dependency>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>21.3</version>
    <classifier>jdk16</classifier>
</dependency>

Отправить документ Word в теле письма с помощью Java

Ниже приведены шаги для импорта и отправки документа Word в теле сообщения электронной почты.

  • Загрузите документ Word, используя класс com.aspose.words.Document.
  • Создайте экземпляр класса ByteArrayOutputStream.
  • Сохраните документ Word как MHTML в объекте ByteArrayOutputStream.
  • Загрузите MHTML в объект ByteArrayInputStream.
  • Создайте экземпляр класса com.aspose.email.MailMessage и загрузите MHTML, сохраненный в объекте ByteArrayInputStream.
  • Установите поля электронной почты, такие как «Кому», «От», «Тема» и т. д.
  • Создайте экземпляр класса com.aspose.email.SmtpClient.
  • Установите хост и отправьте электронное письмо с помощью метода SmtpClient.send(MailMessage).

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

// Загрузите документ
Document doc = new Document("Document.doc");

// Сохраните в выходной поток в формате MHTML.
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
doc.save(outputStream, SaveFormat.MHTML);

// Загрузите поток MHTML обратно во входной поток для использования с Aspose.Email.
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());

// Создайте сообщение электронной почты MIME Aspose.Email из потока.
MailMessage message = MailMessage.load(inputStream);
message.setFrom(new MailAddress("your_from@email.com"));
message.getTo().add("your_to@email.com");
message.setSubject("Aspose.Words + Aspose.Email MHTML Test Message");

// Сохраните сообщение в формате Outlook MSG.
message.save("Message.msg", SaveOptions.getDefaultMsg());

// Отправьте сообщение с помощью Aspose.Email
SmtpClient client = new SmtpClient();
client.setHost("your_smtp.com");
client.send(message);

Получите бесплатную лицензию API

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

Вывод

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

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