![JavaでWord文書を電子メールとして送信する](images/Send-Word-Document-in-Email.jpg#center)
ほとんどの場合、電子メールは特定のテンプレートに従って適切にフォーマットされたレイアウトで送信されます。ただし、さまざまな電子メールエディタは拡張フォーマットオプションを提供していません。このような場合、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の詳細を確認できます。