JavaでWord文書を電子メールとして送信する

ほとんどの場合、電子メールは特定のテンプレートに従って適切にフォーマットされたレイアウトで送信されます。ただし、さまざまな電子メールエディタは拡張フォーマットオプションを提供していません。このような場合、Word文書にメッセージを作成し、それを電子メールの本文として使用できます。この記事では、Javaを使用してMSWord文書を電子メール本文として送信する方法を学習します。

電子メールでWord文書をインポートするためのJavaAPI

Word文書をメール本文にインポートして送信するために、Aspose.Words for JavaおよびAspose.Email for JavaAPIの機能を活用します。前者はWord文書をMHTML形式で保存するために使用され、後者は電子メールの作成と送信に使用されます。次のセクションからAPIをダウンロードするか、Maven構成を使用してAPIをインストールできます。

<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>

Javaを使用して電子メール本文でWord文書を送信する

以下は、Word文書を電子メール本文にインポートして送信する手順です。

  • com.aspose.words.Documentクラスを使用してWordドキュメントをロードします。
  • ByteArrayOutputStreamクラスのインスタンスを作成します。
  • Word文書をMHTMLとしてByteArrayOutputStreamオブジェクトに保存します。
  • MHTMLをByteArrayInputStreamオブジェクトにロードします。
  • com.aspose.email.MailMessageクラスのインスタンスを作成し、ByteArrayInputStreamオブジェクトに保存されているMHTMLをロードします。
  • To、From、Subjectなどの電子メールのフィールドを設定します。
  • com.aspose.email.SmtpClientクラスのインスタンスを作成します
  • ホストを設定し、SmtpClient.send(MailMessage)メソッドを使用してメールを送信します。

次のコードサンプルは、Word文書を電子メールの本文として送信する方法を示しています。

// ドキュメントをロードする
Document doc = new Document("Document.doc");

// MHTML形式で出力ストリームに保存します。
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
doc.save(outputStream, SaveFormat.MHTML);

// Aspose.Emailで使用するために、MHTMLストリームを入力ストリームにロードし直します。
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());

// ストリームからAspose.EmailMIME電子メールメッセージを作成します。
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");

// メッセージをOutlookMSG形式で保存します。
message.save("Message.msg", SaveOptions.getDefaultMsg());

// Aspose.Emailを使用してメッセージを送信します
SmtpClient client = new SmtpClient();
client.setHost("your_smtp.com");
client.send(message);

無料のAPIライセンスを取得する

無料の一時ライセンスを取得することで、評価の制限なしにこの記事で使用されているAPIを試すことができます。

結論

この記事では、Javaを使用してWord文書を電子メール本文としてインポートおよび送信する方法を学習しました。さらに、コードサンプルは、SMTPクライアントを使用してWord文書で構成される電子メールを送信する方法を示しています。次のドキュメントにアクセスすると、この記事で使用されているAPIの詳細を確認できます。

関連項目