メッセージの送信と転送 - Java プログラムを使用して Outlook メールメッセージを送信

この SmtpClient クラスは、アプリケーションがシンプルメール転送プロトコル(SMTP)を使用してメールを送信できるようにします。

  • この SmtpClient クラスは、開発者がメールメッセージを送信する際に使用する唯一の主要エントリです。
  • この SmtpClient クラスは、メールメッセージを書き込みファイルシステムやメッセージキューに保存するなど、他の一般的なメール配信方法も提供します。
  • この SmtpClient クラスはこれら2つのプログラミングモデルを完全にサポートします:
  • この SmtpClient クラスはまたサポートします TNEFとしてメッセージを送信する

メールメッセージを送信し、SMTPサーバーへの送信が完了するまで待機してブロックするには、同期Sendメソッドのいずれかを使用します。メール送信中にプログラムのメインスレッドを継続して実行させたい場合は、次のものを使用します beginSend メソッド。

メールの同期送信

メールメッセージは、次のものを使用して同期的に送信できます。 SmtpClient クラス 送信 メソッドです。指定されたメールメッセージをSMTPサーバー経由で配信します。送信者、受信者、件名、本文はStringオブジェクトで指定します。同期的にメールメッセージを送信するには、以下の手順に従ってください:

  1. インスタンスを作成する MailMessage クラスを使用し、そのプロパティを設定します。
  2. インスタンスを作成する SmtpClient クラスにホスト、ポート、ユーザー名、パスワードを指定します。
  3. 以下を使用してメッセージを送信する SmtpClient クラス 送信 メソッドに渡す MailMessage インスタンス。

以下のJavaコードスニペットは、Outlookメールを同期的に送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Declare msg as MailMessage instance
MailMessage msg = new MailMessage();

// Create an instance of SmtpClient class
SmtpClient client = new SmtpClient();

// Specify your mailing host server, Username, Password, Port # and Security option
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

try {
    // Client.Send will send this message
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

メールの非同期送信

場合によってはメールを非同期で送信したいことがあります。たとえば、アプリケーションから大量のメールを送信する場合、同期的なアプローチは機能しないことがあります。そのようなシナリオでは、次のものを使用できます beginSendbeginSend メソッド( SmtpClient クラスはメールメッセージをSMTPサーバーへ配信のために送信します。このメソッドは呼び出しスレッドをブロックせず、操作完了時に呼び出されるオブジェクトをメソッドに渡すことができます。JavaでOutlookメールメッセージを非同期に送信するには、以下の手順に従ってください:

  1. インスタンスを作成する MailMessage クラスを使用し、そのさまざまなプロパティを利用します。
  2. インスタンスを作成する SmtpClient クラスにホスト、ポート、ユーザー名、パスワードを指定します。
  3. 非同期操作が完了したときにメソッドに渡され、呼び出されるユーザー定義のインスタンスを作成します。
  4. 以下を使用してメッセージを送信する beginSend メソッド SmtpClient クラスに渡す MailMessage インスタンスとユーザー定義のインスタンスをそれに設定し、操作が完了したときに呼び出されるコールバック関数を指定します。

メールが送信された、または操作がキャンセルされた際に通知を受け取るには、コールバック関数を渡す必要があります。 beginSend メソッドが呼び出されます。呼び出した後は SmtpClient クラス beginSend このメソッドでは、メールメッセージが完全に送信されるのを待つ必要はありません。別のメソッドを呼び出すことができます。 beginSend 同時に行われます。メールが次を使用して送信されたとき beginSend メソッドでは、コードスニペットがメッセージ("Message Sent")を出力します。以下の Java プログラムまたはコードスニペットは、非同期でメールを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

public static void run() {
    sendMail();
}

static SmtpClient getSmtpClient() {
    SmtpClient client = new SmtpClient();
    client.setHost("mail.server.com");
    // Specify your mail Username, Password, Port # and security option
    client.setUsername("username");
    client.setPassword("password");
    client.setPort(587);
    client.setSecurityOptions(SecurityOptions.SSLExplicit);
    return client;
}

static void sendMail() {
    try {

        // Declare msg as MailMessage instance
        MailMessage msg = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Test subject", "Test body");
        SmtpClient client = getSmtpClient();
        Object state = new Object();
        IAsyncResult ar = client.beginSend(msg, callback, state);
        // If the user canceled the send, and mail hasn't been sent yet,
        client.cancelAsyncOperation(ar);

        msg.dispose();
        System.out.println("Goodbye.");
    } catch (Exception ex) {
        System.err.println(ex);
    }
}

static AsyncCallback callback = new AsyncCallback() {
    public void invoke(IAsyncResult ar) {
        IAsyncResultExt task = null;
        if (ar instanceof IAsyncResult)
            task = (IAsyncResultExt) ar;

        if (task != null && task.isCanceled()) {
            System.out.println("Send canceled.");
        }

        if (task != null && task.getErrorInfo() != null) {
            System.out.println(task.getErrorInfo());
        } else {
            System.out.println("Message Sent.");
        }
    }
};

ディスクから保存されたメッセージを送信

EML ファイル(Outlook Express 電子メールファイル)は、メールヘッダー、メッセージ本文、および添付ファイルを含みます。Aspose.Email は開発者が EML ファイルをさまざまな方法で扱うことを可能にします。本記事では、ディスクから EML ファイルを読み込み、SMTP を使用してメールとして送信する方法を示します。 .eml ファイルはディスクまたはストリームからロードして MailMessage クラスと、次を使用してメールメッセージを送信します SmtpClient クラス。 MailMessage クラスは新しいメールメッセージの作成、ディスクまたはストリームからメールメッセージファイルの読み込み、メッセージの保存を行う主要なクラスです。以下のJavaコードスニペットは、ディスクから保存されたメッセージを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Load an EML file in MailMessage class
MailMessage message = MailMessage.load(dataDir + "test.eml");

// Send this message using SmtpClient
SmtpClient client = new SmtpClient("host", "username", "password");

try {
    client.send(message);
} catch (Exception ex) {
    System.out.println(ex.getMessage());
}

プレーンテキストメール送信

以下のプログラミングサンプルは、プレーンテキストメールメッセージを送信する方法を示しています。その 本文 プロパティ、クラスのプロパティです。 MailMessage クラスはメッセージ本文のプレーンテキストコンテンツを指定するために使用されます。プレーンテキストメールメッセージを送信するには、以下の手順に従ってください:

  • インスタンスを作成します MailMessage クラス。
  • 送信者と受信者のメールアドレスを指定してください MailMessage インスタンス。
  • 指定してください: 本文 プレーンテキストメッセージに使用されるコンテンツです。
  • インスタンスを作成します SmtpClient クラスとメールを送信します。

次のコードスニペットは、プレーンテキストメールを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the MailMessage class
MailMessage message = new MailMessage();

// Set From field, To field and Plain text body
message.setFrom(MailAddress.to_MailAddress("sender@sender.com"));
message.getTo().add("receiver@receiver.com");
message.setBody("This is Plain Text Body");

// Create an instance of the SmtpClient class
SmtpClient client = new SmtpClient();

// And Specify your mailing host server, Username, Password and Port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try {
    // Client.Send will send this message
    client.send(message);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

HTML本文でメール送信

以下のプログラミングサンプルは、シンプルなHTMLメールメッセージを送信する方法を示しています。その HtmlBody、クラスのプロパティ MailMessage クラスはメッセージ本文のHTMLコンテンツを指定するために使用されます。シンプルなHTMLメールを送信するには、以下の手順に従ってください:

  • インスタンスを作成します MailMessage クラス。
  • 送信者と受信者のメールアドレスを指定します MailMessage インスタンス。
  • 指定してください: HtmlBody コンテンツ。
  • インスタンスを作成します SmtpClient クラスと、次を使用してメールを送信します 送信 メソッド。

この記事の目的のために、メールのHTMLコンテンツは基本的なものです: This is the HTML body ほとんどのHTMLメールはもっと複雑です。以下のJavaプログラムのスニペットは、HTML本文でメールを送信する方法を示しています。

public static void run() {
    // Declare msg as MailMessage instance
    MailMessage msg = new MailMessage();

    // Use MailMessage properties like specify sender, recipient, message and HtmlBody
    msg.setFrom(MailAddress.to_MailAddress("newcustomeronnet@gmail.com"));
    msg.setTo(MailAddressCollection.to_MailAddressCollection("asposetest123@gmail.com"));
    msg.setSubject("Test subject");
    msg.setHtmlBody("<html><body>This is the HTML body</body></html>");
    SmtpClient client = getSmtpClient();
    try {
        // Client will send this message
        client.send(msg);
        System.out.println("Message sent");
    } catch (Exception ex) {
        System.err.println(ex);
    }

    System.out.println("Email sent with HTML body.");
}

private static SmtpClient getSmtpClient() {
    SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
    client.setSecurityOptions(SecurityOptions.Auto);
    return client;
}

代替メッセージテキストでメール送信

以下のプログラミングサンプルは、代替コンテンツ付きのシンプルなHTMLメールメッセージの送信方法を示しています。次を使用してください AlternateView クラスは、メールメッセージのコピーをさまざまな形式で指定するために使用します。たとえば、HTMLでメッセージを送信する場合、HTMLを表示できないメールリーダーを使用する受信者のためにプレーンテキストバージョンも提供したいことがあります。また、ニュースレターを送信する場合、プレーンテキスト版を希望する受信者のためにテキストのプレーンコピーを提供したいことがあります。代替テキスト付きのメールを送信するには、以下の手順に従います:

  1. インスタンスを作成します MailMessage クラス。
  2. 送信者と受信者のメールアドレスを指定します MailMessage インスタンス。
  3. インスタンスを作成します AlternateView クラス。

これは、文字列で指定された内容を使用してメールメッセージに代替ビューを作成します。

  1. インスタンスを追加します AlternateView クラスを MailMessage オブジェクト。
  2. インスタンスを作成します SmtpClient クラスと、次を使用してメールを送信します 送信 メソッド。

次のコードスニペットは、代替テキスト付きのメールを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Declare message as MailMessage instance
MailMessage message = new MailMessage();

// Creates AlternateView to view an email message using the content specified in the //String
AlternateView alternate = AlternateView.createAlternateViewFromString("Alternate Text");

// Adding alternate text
message.getAlternateViews().addItem(alternate);

一括メール送信

一括メール送信とは、1つのメッセージで多数のメールを送信することです。メールのバッチは次を使用して送信できます SmtpClient クラス 送信 受け入れるメソッドのオーバーロード MailMessageCollection クラス:

  1. インスタンスを作成する SmtpClient クラス。
  2. 指定してください: SmtpClient クラスのプロパティです。
  3. インスタンスを作成します MailMessage クラス。
  4. インスタンス内で送信者、受信者、件名、メッセージを指定します MailMessage クラス。
  5. 別の相手にメールを送信したい場合は、上記の2ステップを再度繰り返してください。
  6. インスタンスを作成する MailMessageCollection クラス。
  7. インスタンスを追加します MailMessage クラスをオブジェクトの MailMessageCollection クラス。
  8. これで、次のものを使用してメールを送信してください SmtpClient クラス 送信 インスタンスを渡すことで呼び出すメソッド MailMessageCollection それに含まれるクラス。

次のコードスニペットは、一括メールを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create SmtpClient as client and specify server, port, user name and password
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Create instances of MailMessage class and Specify To, From, Subject and 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?");

// Create an instance of MailMessageCollection class
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);

// Use client.BulkSend function to complete the bulk send task
try {
    // Send Message using BulkSend method
    client.send(manyMsg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

一括送信されたメッセージ情報の取得

大量にメッセージを送信する際、正常に送信されたメッセージ数とそれらのリストに関する情報を取得できます。その SucceededSending この目的のためにイベントが使用されます。

以下のコードサンプルは、正常に送信されたメッセージの数に関する情報を取得する方法を示しています:

try (SmtpClient client = new SmtpClient(host, SecurityOptions.Auto)) {
    final AtomicInteger messageCount = new AtomicInteger(0);

    client.setSucceededSending(new EventHandler<MailMessageEventArgs>() {
        public void invoke(Object sender, MailMessageEventArgs eventArgs) {
            System.out.println("The message " + eventArgs.getMessage().getSubject() + " was successfully sent.");
            messageCount.incrementAndGet();
        }
    });

    client.send(messages);

    System.out.println(messageCount + " messages were successfully sent.");
}

マルチコネクションでメール送信

SmtpClient を提供します UseMultiConnection 負荷の高い操作のために複数の接続を作成できるプロパティです。また、マルチコネクションモード中に使用する接続数は次を使用して設定できます SmtpClient.ConnectionsQuantity. 次のコードスニペットは、複数メッセージを送信するためのマルチコネクションモードの使用例を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

SmtpClient smtpClient = new SmtpClient();
smtpClient.setHost("<HOST>");
smtpClient.setUsername("<USERNAME>");
smtpClient.setPassword("<PASSWORD>");
smtpClient.setPort(587);
smtpClient.setSupportedEncryption(EncryptionProtocols.Tls);
smtpClient.setSecurityOptions(SecurityOptions.SSLExplicit);

List<MailMessage> messages = new ArrayList<MailMessage>();
for (int i = 0; i < 20; i++) {
    MailMessage message = new MailMessage("<EMAIL ADDRESS>", "<EMAIL ADDRESS>", "Test Message - " + UUID.randomUUID().toString(),
            "SMTP Send Messages with MultiConnection");
    messages.add(message);
}

smtpClient.setConnectionsQuantity(5);
smtpClient.setUseMultiConnection(MultiConnectionMode.Enable);
smtpClient.send(messages);

メッセージを TNEF として送信する

TNEF メールは特殊な書式を持ち、標準 API で送信すると失われる可能性があります。Aspose.Email は TNEF としてメールを送信する機能を提供し、書式を保持します。 SmtpClient クラス UseTnef このプロパティを設定すると、メールを TNEF として送信できます。以下のコードスニペットは、メッセージを TNEF として送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

String emlFileName = dataDir + "Message.eml"; // A TNEF Email

// Load from eml
MailMessage eml1 = MailMessage.load(emlFileName, new EmlLoadOptions());
eml1.setFrom(MailAddress.to_MailAddress("somename@gmail.com"));
eml1.getTo().clear();
eml1.getTo().addItem(new MailAddress("first.last@test.com"));
eml1.setSubject("With PreserveTnef flag during loading");
eml1.setDate(new Date());
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "somename", "password");
client.setSecurityOptions(SecurityOptions.Auto);
client.setUseTnef(true); // Use this flag to send as TNEF
client.send(eml1);

会議リクエストの送信

Microsoft Outlook はカレンダー機能とメール管理機能の両方を提供します。ユーザーがイベントへの招待が含まれるメールを開くと、Outlook は受諾または辞退を促します。Aspose.Email は、開発者がメールにカレンダー機能を追加できるようにします。

メールでリクエストを送信する

メールで会議リクエストを送信するには、以下の手順に従ってください:

  • インスタンスを作成します MailMessage クラス。
  • 送信者と受信者のアドレスを、次のインスタンスで指定します MailMessage クラス。
  • 次のクラスのインスタンスを初期化します Appointment クラスに値を渡します。
  • サマリーと説明を指定します Calendar インスタンス。
  • 追加する Calendar) を MailMessage インスタンスに渡す Appointment インスタンス。

|メールで送信された iCalendar 会議リクエスト| | :- | |todo:image_alt_text| 以下のコードスニペットは、メールでリクエストを送信する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the MailMessage class
MailMessage msg = new MailMessage();

// Set the sender, recipient, who will receive the meeting request. Basically, the recipient is the same as the meeting attendees
msg.setFrom(MailAddress.to_MailAddress("newcustomeronnet@gmail.com"));
msg.setTo(MailAddressCollection.to_MailAddressCollection("person1@domain.com, person2@domain.com, person3@domain.com, asposetest123@gmail.com"));

// Create Appointment instance
Calendar cal = Calendar.getInstance();
cal.set(2015, Calendar.JULY, 17, 13, 0, 0);
Date startDate = cal.getTime();
cal.set(2015, Calendar.JULY, 17, 14, 0, 0);
Date endDate = cal.getTime();
Appointment app = new Appointment("Room 112", startDate, endDate, msg.getFrom(), msg.getTo());
app.setSummary("Release Meetting");
app.setDescription("Discuss for the next release");

// Add appointment to the message and Create an instance of SmtpClient class
msg.addAlternateView(app.requestApointment());
SmtpClient client = getSmtpClient();

try {
    // Client.Send will send this message
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

IBM Lotus Notes の iCalendar サポート

Aspose.Email のカレンダー機能は iCalendar 標準(カレンダー データ交換の標準、RFC 2445 または RFC2445 Syntax Reference)に基づいています。そのため、Microsoft Outlookだけでなく IBM Lotus Notes もサポートします。Lotus Notes で会議リクエストを送信するには、上記と同じ手順に従ってください。

SMTP クライアントを使用してメールを転送する

SMTP クライアントでのメール転送

メールの転送は、日常のデジタルコミュニケーションで一般的な行為です。受信したメールは、元の送信者と共有せずに特定の受信者へ転送できます。Aspose.Email API SmtpClient 特定の受信者にメールを転送する機能を提供します。その 転送 このメソッドは、受信または保存したメールを目的の受信者に転送するために使用できます(本記事参照)。以下のコードスニペットは、SMTP クライアントを使用してメールを転送する方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of SmtpClient class
SmtpClient client = new SmtpClient();

// Specify your mailing host server, Username, Password, Port and SecurityOptions
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);
MailMessage message = MailMessage.load(dataDir + "Message.eml");
client.forward("Recipient1@domain.com", "Recipient2@domain.com", message);

MailMessage を使用しないメールの転送

APIは、EMLメッセージを事前に読み込まずに転送することもサポートしています。 MailMessage。これは、システムメモリが制限されている場合に有用です。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

String host = "mail.server.com";
String username = "username";
String password = "password";
int smtpPort = 587;
String sender = "Sender@domain.com";
MailAddressCollection recipients = new MailAddressCollection();
recipients.add("recepient1@domain.com, recepient2@domain.com");

try (SmtpClient client = new SmtpClient(host, smtpPort, username, password, SecurityOptions.Auto)) {
    String fileName = "test.eml";
    try (FileInputStream fs = new FileInputStream(new File(dataDir + fileName))) {
        client.forward(sender, recipients, fs);
    }
}

メールマージの実行

メールマージは、類似したメールメッセージのバッチを作成・送信するのに役立ちます。メールの基本部分は同じですが、内容は個別化できます。通常、受信者の連絡先情報(名、姓、会社など)を使用してメールをパーソナライズします。

|メールマージの動作イラスト:| | :- | |todo:image_alt_text| Aspose.Emailは、さまざまなデータソースからのデータを含むメールマージを設定できるようにします。

Aspose.Email でメールマージを実行するには、次の手順を実行します:

  1. 名前シグネチャを持つ関数を作成します
  2. インスタンスを作成します MailMessage クラス。
  3. 送信者、受信者、件名、本文を指定します。
  4. メールの末尾用の署名を作成します。
  5. インスタンスを作成します TemplateEngine クラスに渡します MailMessage インスタンス。
  6. 署名を取得します: TemplateEngine インスタンス。
  7. インスタンスを作成します DataTable クラス。
  8. データソースとして列 ReceiptFirstNameLastName を追加します DataTable クラス。
  9. インスタンスを作成します DataRow クラス。
  10. 受取人のアドレス、姓、名を指定します DataRow オブジェクト。
  11. インスタンスを作成します MailMessageCollection クラス
  12. 指定してください: TemplateEngine  および DataTable インスタンスは MailMessageCollection インスタンス。
  13. インスタンスを作成します SmtpClient クラスにサーバー、ポート、ユーザー名、パスワードを指定します。
  14. 以下を使用してメールを送信します: SmtpClient クラス 送信 メソッド。

以下のサンプルでは、#FirstName# は DataTable 列はユーザーが設定する値です。以下のコードスニペットは、メールマージの実行方法を示しています。

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
public static void run() {
    // The path to the File directory.
    String dstEmail = dataDir + "EmbeddedImage.msg";

    // Create a new MailMessage instance
    MailMessage msg = new MailMessage();

    // Add subject and from address
    msg.setSubject("Hello, #FirstName#");
    msg.setFrom(MailAddress.to_MailAddress("sender@sender.com"));

    // Add email address to send email also Add mesage field to HTML body
    msg.getTo().add("your.email@gmail.com");
    String htmlBody = "Your message here/r/n" + "Thank you for your interest in <STRONG>Aspose.Email</STRONG>.";

    // Use GetSignment as the template routine, which will provide the same signature
    htmlBody += "<br><br>Have fun with it.<br><br>#GetSignature()#";

    msg.setHtmlBody(htmlBody);

    // Create a new TemplateEngine with the MSG message, Register GetSignature routine. It will be used in MSG.
    TemplateEngine engine = new TemplateEngine(msg);
    engine.registerRoutine("GetSignature", new TemplateRoutine() {
        public Object invoke(Object[] args) {
            return getSignature(args);
        }
    });

    // Create an instance of DataTable and Fill a DataTable as data source
    DataTable dt = new DataTable();
    dt.getColumns().add("Receipt");
    dt.getColumns().add("FirstName");
    dt.getColumns().add("LastName");

    DataRow dr;
    dr = dt.newRow();
    dr.set("Receipt", "Nancy&lt;Nancy@somedomain.com&gt;");
    dr.set("FirstName", "Nancy");
    dr.set("LastName", "Doe");
    dt.getRows().add(dr);
    dr = dt.newRow();
    dr.set("Receipt", "Andrew&lt;Andrew@somedomain.com&gt;");
    dr.set("FirstName", "Andrew");
    dr.set("LastName", "Doe");
    dt.getRows().add(dr);
    dr = dt.newRow();
    dr.set("Receipt", "Janet&lt;Janet@somedomain.com&gt;");
    dr.set("FirstName", "Janet");
    dr.set("LastName", "Doe");
    dt.getRows().add(dr);

    MailMessageCollection messages;
    try {
        // Create messages from the message and datasource.
        messages = engine.instantiate(dt);

        // Create an instance of SmtpClient and specify server, port, username and password
        SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
        client.setSecurityOptions(SecurityOptions.Auto);

        // Send messages in bulk
        client.send(messages);
    } catch (MailException ex) {
        System.err.println(ex);
    }

    catch (SmtpException ex) {
        System.err.println(ex);
    }

    System.out.println("Message sent after performing mail merge.");
}

// Template routine to provide signature
static Object getSignature(Object[] args) {
    return "Aspose.Email Team<br>Aspose Ltd.<br>" + new Date().toString();
}

行単位のメールマージの実行

ユーザーは個々のデータ行もマージして、完全で準備された MailMessage オブジェクト。 TemplateEngine.merge このメソッドは、行単位のメールマージを実行するために使用できます。

// Create message from the data in current row.
MailMessage message = engine.merge(currentRow);