Outlookの電子メールJavaを作成して送信する

Aspose.Email for Javaは、電子メール管理の基本機能と高度な機能をすべて提供する強力な電子メール処理APIです。これにより、Outlook電子メールメッセージを作成し、既存の電子メールを読み取り、Javaアプリケーション内からMSG、EML、PST、OST、MBOX、およびMHTメッセージを他の形式に変換できます。この記事では、Javaを使用してOutlook電子メールを作成および送信する方法の基本的かつ重要な機能をいくつか紹介します。

この記事では、電子メールの作成と送信に関する次の機能について説明します。

JavaEmailAPI-インストール

Aspose.Email for 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>

Javaを使用してOutlook電子メールメッセージを作成する

Aspose.Email for Javaを使用すると、電子メールメッセージを作成し、EML、EMLX、MSG、MHTMLなどの目的の電子メール形式で保存できます。電子メールメッセージを作成してファイルとして保存する手順は次のとおりです。

  • MailMessageクラスのインスタンスを作成します。
  • 件名、本文、宛先、CCなどのメッセージのプロパティを設定します。
  • 必要に応じて添付ファイルを追加します。
  • MailMessage.save()メソッドを使用して、電子メールメッセージを希望の形式で保存します。

次のコードサンプルは、Javaを使用してOutlook電子メールメッセージを作成する方法を示しています。

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

// 受信者とCC受信者に追加
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());

Javaを使用してHTML本文でEメールを作成する

前の例では、プレーンテキストの電子メールを作成して電子メールファイルとして保存しただけです。ただし、今日のほとんどの電子メールは、電子メールのコンテンツを適切に整理して表示するためにHTML本文で作成されています。この場合、HTMLタグを使用して電子メールのレイアウトを指定します。 Aspose.Email for Javaを使用してHTML本文で電子メールを作成する方法を見てみましょう。

  • MailMessageクラスを使用して、新しい電子メールメッセージを作成します。
  • Subject、To、CC、およびその他のプロパティを設定します。
  • MailMessage.setHtmlBody(string)メソッドを使用してメールの本文を設定します。
  • MailMessage.save()メソッドを使用して電子メールメッセージを保存します。

次のコードサンプルは、Javaを使用してHTML本文で電子メールを作成する方法を示しています。

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

// 受信者とCC受信者に追加
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 for Javaでは、電子メールメッセージに必要なテキストエンコーディングを設定することもできます。エンコーディング標準は、電子メールの本文の文字を解釈する方法を電子メールアプリケーションまたはブラウザに通知するために使用されます。以下は、特定のエンコード標準を使用して電子メールを作成する手順です。

  • MailMessageクラスのオブジェクトを作成します。
  • 件名、宛先、CCなどの電子メールのプロパティを設定します。
  • 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"));

// 受信者とCC受信者に追加
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を使用してOutlookの電子メールを送信する

電子メールを作成したら、SMTP(Simple Mail Transfer Protocol)を使用して受信者に送信できます。以下は、Aspose.Email for Javaを使用して電子メールメッセージを送信する手順です。

  • MailMessageクラスを使用して、新しい電子メールメッセージを作成するか、既存の電子メールメッセージをロードします。
  • SmtpClientクラスのインスタンスを作成し、そのホスト、ユーザー名、パスワード、およびポートを設定します。
  • SmtpClient.send()メソッドを使用して電子メールを送信します。

次のコードサンプルは、JavaでSMTPクライアントを介して電子メールを送信する方法を示しています。

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"));

// 受信者とCC受信者に追加
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 for 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"));

// 受信者とCC受信者に追加
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クラスのインスタンスを作成し、To、From、Subject、およびMessageを指定します
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の電子メールメッセージを作成し、Javaを使用してEML、MSG、およびMTH形式で保存する方法を紹介しました。さらに、STMPクライアントを使用してJavaで電子メールを送信するさまざまな方法についても説明します。 ドキュメントを使用して、AsposeのJava EmailLibraryについて詳しく知ることができます。

関連項目