Microsoft Word ドキュメントをメッセージ本文として使用し、メールを送信する

この記事では、Microsoft Word 文書をメール本文として使用し、受信者に送信する方法を示します。サンプル文書は、Northwind データベースサンプルの販売請求書で、Microsoft Word 形式にエクスポートされたものです。Aspose.Email for Java はネットワークプロトコルと Microsoft Outlook の機能を扱いますが、Microsoft Word 文書は処理できません。これを克服するために、本記事のサンプルでは Aspose.Words for Java Word ドキュメントを読み込み、MHTML 形式に変換します。Aspose.Email for Java はメール本文に MHTML ドキュメントを使用します。

Microsoft Word ドキュメントをメール本文として使用

以下のプログラミングサンプルは、Aspose.Words for Java と Aspose.Email for Java を使用して、Word ドキュメントをメール本文として送信する方法を示しています。

  1. Aspose.Word for Java の Document クラス。
  2. MHTML 形式で保存します。
  3. Aspose.Email for Java の MailMessage クラスはメール本文を設定します。
  4. 異なる方法でその他のメッセージプロパティを設定します。 MailMessage クラスのプロパティとメソッドを使用してメールを送信します。
  5. Aspose.Email for Java の SMTPClient クラス。

ソースドキュメントは、Microsoft Northwind サンプルから Microsoft Word にエクスポートされた販売請求書で、以下に示されています。

todo:image_alt_text

メッセージが Microsoft Outlook で送受信されると、以下のように表示されます。

todo:image_alt_text

HTML 書式と画像は、Outlook または Gmail や Hotmail のようなウェブメールクライアントで表示した場合でも、元のソースドキュメントと同様に保持されます。以下は、Chrome ブラウザで Gmail を使用して開いたときのメッセージのスクリーンショットです。

todo:image_alt_text

次のコードスニペットは、Microsoft Word ドキュメントをメッセージ本文として使用し、以下を使用してメールを送信する方法を示します。 SmtpClient クラスのインスタンスです。

// The path to the File directory
String dataDir = "data/";

// Load a Word document from disk and save it to stream as MHTML
Document wordDocument = new Document(dataDir + "Test.doc");
ByteArrayOutputStream mhtmlStream = new ByteArrayOutputStream();
wordDocument.save(mhtmlStream, SaveFormat.MHTML);

// Load the MHTML in a MailMessage object
MailMessage message = MailMessage.load(new ByteArrayInputStream(mhtmlStream.toByteArray()), new MhtmlLoadOptions());
message.setSubject("Sending Invoice in Email");
message.setFrom(new MailAddress("sender@gmail.com"));
message.setTo(MailAddressCollection.to_MailAddressCollection("recipient@gmail.com"));

// Save the message in MSG format to disk
message.save(dataDir + "WordDocAsEmailBody_out.msg", SaveOptions.getDefaultMsgUnicode());

    // Send the email message
try (SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd")) {
    client.setSecurityOptions(SecurityOptions.SSLExplicit);
    client.send(message);
}