Odesílání a přeposílání zpráv – Odesílání Outlook e‑mailových zpráv pomocí Java programu

The SmtpClient třída umožňuje aplikacím odesílat e‑maily pomocí protokolu Simple Mail Transfer Protocol (SMTP).

Pro odeslání e‑mailové zprávy a blokování čekání na přenos e‑mailu na SMTP server použijte jednu ze synchronních metod Send. Pro umožnění, aby hlavní vlákno programu pokračovalo v běhu během přenosu e‑mailu, použijte beginSend metoda.

Odesílání e‑mailů synchronně

E‑mailovou zprávu lze synchronně odeslat pomocí SmtpClient třída send metoda. Odesílá určenou e‑mailovou zprávu přes SMTP server k doručení. Odesílatel, příjemci, předmět a tělo zprávy jsou zadány pomocí objektů String. Pro synchronní odeslání e‑mailové zprávy postupujte podle následujících kroků:

  1. Vytvořte instanci MailMessage třída a nastavte její vlastnosti.
  2. Vytvořte instanci SmtpClient třída a specifikujte hostitele, port, uživatelské jméno a heslo.
  3. Odeslat zprávu pomocí SmtpClient třída send metoda a předat MailMessage instance.

Následující úryvek kódu v Javě ukazuje, jak odeslat Outlook e‑maily synchronně.

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

Odesílání e‑mailů asynchronně

Někdy můžete chtít odesílat poštu asynchronně. Například pokud odesíláte velké množství e‑mailů pomocí aplikace, synchronní přístup nemusí fungovat. V takovém scénáři můžete použít beginSend. Třída beginSend metoda třídy SmtpClient třída odesílá e‑mailovou zprávu na SMTP server k doručení. Tato metoda neblokuje volající vlákno a umožňuje volajícímu předat objekt metodě, který je vyvolán po dokončení operace. Pro asynchronní odeslání Outlook e‑mailu v Javě postupujte podle následujících kroků:

  1. Vytvořte instanci MailMessage třída a použijte její různé vlastnosti.
  2. Vytvořte instanci SmtpClient třída a specifikujte hostitele, port, uživatelské jméno a heslo.
  3. Vytvořte uživatelem definovanou instanci, která bude předána metodě a vyvolána po dokončení asynchronní operace.
  4. Odeslat zprávu pomocí beginSend metoda SmtpClient třída a předat MailMessage instance a uživatelem definovaná instance v ní spolu s funkcí zpětného volání, která bude zavolána po dokončení operace.

Pro získání oznámení, když byl e‑mail odeslán nebo byla operace zrušena, funkce zpětného volání předaná do beginSend method je zavolána. Po zavolání SmtpClient třída beginSend method není nutné čekat, až bude e‑mailová zpráva zcela odeslána. Můžeme zavolat další metodu beginSend ve stejnou dobu. Když byl e‑mail odeslán pomocí beginSend metoda, úryvek kódu vypíše zprávu ("Message Sent"). Následující Java program nebo úryvek kódu ukazuje, jak odesílat e‑maily asynchronně.

// 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.");
        }
    }
};

Odesílání uložených zpráv z disku

Soubory EML (Outlook Express Electronic Mail files) obsahují hlavičku e‑mailu, tělo zprávy a případné přílohy. Aspose.Email umožňuje vývojářům pracovat se soubory EML různými způsoby. Tento článek ukazuje, jak načíst soubory EML z disku a odeslat je jako e‑mailové zprávy pomocí SMTP. Můžete načíst .eml soubory z disku nebo proudu do MailMessage třídy a odešlete e‑mailovou zprávu pomocí SmtpClient třída. The MailMessage třída je hlavní třída pro vytváření nových e‑mailových zpráv, načítání souborů e‑mailových zpráv z disku nebo proudu a ukládání zpráv. Následující úryvek Java kódu ukazuje, jak odeslat uložené zprávy z disku.

// 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());
}

Odesílání e‑mailu v prostém textu

Níže uvedené programové ukázky ukazují, jak odeslat e‑mail v prostém textu. Body vlastnost, která je vlastností třídy MailMessage třídy, která se používá k určení obsahu zprávy v prostém textu. Pro odeslání e‑mailu v prostém textu postupujte podle následujících kroků:

  • Vytvořte instanci MailMessage třída.
  • Určete e‑mailové adresy odesílatele a příjemce v MailMessage instance.
  • Určete Body obsah, používaný pro zprávu v prostém textu.
  • Vytvořte instanci SmtpClient třídy a odešlete e‑mail.

Následující úryvek kódu vám ukazuje, jak odeslat e‑mail v prostém textu.

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

Odesílání e‑mailu s HTML tělem

Níže uvedené programové ukázky ukazují, jak můžete odeslat jednoduchou HTML e‑mailovou zprávu. HtmlBody, vlastnost třídy MailMessage třídy, která se používá k určení HTML obsahu těla zprávy. Pro odeslání jednoduchého HTML e‑mailu postupujte podle následujících kroků:

  • Vytvořte instanci MailMessage třída.
  • Určete e‑mailovou adresu odesílatele a příjemce v MailMessage instance.
  • Určete HtmlBody obsah.
  • Vytvořte instanci SmtpClient třídy a odešlete e‑mail pomocí send metoda.

Pro účely tohoto článku je HTML obsah e‑mailu jednoduchý: This is the HTML body Většina HTML e‑mailů bude složitější. Následující úryvek Java programu ukazuje, jak odeslat e‑mail s HTML tělem.

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

Odesílání e‑mailu s alternativním textem zprávy

Níže uvedené programové ukázky ukazují, jak odeslat jednoduchou HTML e‑mailovou zprávu s alternativním obsahem. Použijte AlternateView třídy pro zadání kopií e‑mailové zprávy v různých formátech. Například pokud odešlete zprávu v HTML, můžete také poskytnout verzi prostého textu pro příjemce, kteří používají e‑mailové čtečky, které nedokážou zobrazit HTML obsah. Nebo pokud posíláte newsletter, můžete poskytnout prostý text pro příjemce, kteří si zvolili verzi v prostém textu. Pro odeslání e‑mailu s alternativním textem postupujte podle následujících kroků:

  1. Vytvořte instanci MailMessage třída.
  2. Určete e‑mailové adresy odesílatele a příjemce v MailMessage instance.
  3. Vytvořte instanci AlternateView třída.

Tím se vytvoří alternativní pohled na e‑mailovou zprávu pomocí obsahu uvedeného v řetězci.

  1. Přidejte instanci AlternateView třídy k MailMessage objektu.
  2. Vytvořte instanci SmtpClient třídy a odešlete e‑mail pomocí send metoda.

Následující úryvek kódu vám ukazuje, jak odeslat e‑mail s alternativním textem.

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

Odesílání hromadných e‑mailů

Odesílání e‑mailů hromadně znamená odeslat šarži e‑mailů v jedné zprávě. Šarži e‑mailů lze odeslat pomocí SmtpClient třída send přetížení metody, které přijímá MailMessageCollection třída:

  1. Vytvořte instanci SmtpClient třída.
  2. Určete SmtpClient vlastností třídy.
  3. Vytvořte instanci MailMessage třída.
  4. Určete odesílatele, příjemce, předmět e‑mailu a zprávu v instanci MailMessage třída.
  5. Opakujte výše uvedené dva kroky, pokud chcete odeslat e‑mail jiné osobě.
  6. Vytvořte instanci MailMessageCollection třída.
  7. Přidejte instanci MailMessage třídy v objektu MailMessageCollection třída.
  8. Nyní odešlete svůj e‑mail pomocí SmtpClient třída send metoda předáním instance MailMessageCollection třída v ní.

Následující úryvek kódu vám ukazuje, jak odeslat hromadné e‑mailové zprávy.

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

Získat informace o hromadně odeslaných zprávách

Když odesíláte zprávy hromadně, můžete získat informace o počtu úspěšně odeslaných zpráv a seznamu těchto zpráv. SucceededSending událost se pro tento účel používá.

Níže uvedený ukázkový kód ukazuje, jak získat informace o počtu úspěšně odeslaných zpráv:

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

Odesílání e‑mailů s multipojením

SmtpClient poskytuje UseMultiConnection vlastnost, která může být použita k vytvoření více spojení pro náročné operace. Počet spojení, která budou použita během režimu multipojení, můžete také nastavit pomocí SmtpClient.ConnectionsQuantity. Následující úryvek kódu demonstruje použití režimu multipojení pro odesílání více zpráv.

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

Odesílání zprávy jako TNEF

E‑mailové zprávy TNEF mají speciální formátování, které může být ztraceno při odesílání standardním API. Aspose.Email poskytuje možnost odesílat e‑maily jako TNEF, čímž zachová formát. SmtpClient třída UseTnef vlastnost lze nastavit tak, aby e‑mail byl odeslán jako TNEF. Následující úryvek kódu ukazuje, jak odeslat zprávu jako 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);

Odesílání požadavků na schůzku

Microsoft Outlook nabízí kalendářové funkce i správu e‑mailů. Když uživatel otevře e‑mail s pozvánkou na událost, Outlook jej vyzve k přijetí nebo odmítnutí pozvánky. Aspose.Email umožňuje vývojářům přidat kalendářové funkce do vašich e‑mailů.

Odesílání žádostí prostřednictvím e‑mailu

Pro odeslání žádostí o schůzky prostřednictvím e‑mailu postupujte takto:

|Žádost o schůzku iCalendar odeslaná e‑mailem| | :- | |todo:image_alt_text| Následující úryvek kódu ukazuje, jak posílat žádosti prostřednictvím e‑mailu.

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

Podpora iCalendar pro IBM Lotus Notes

Funkce kalendáře Aspose.Email je založena na standardu iCalendar, standardu pro výměnu kalendářových dat (RFC 2445 nebo RFC2445 Syntax Reference). Proto podporuje nejen Microsoft Outlook, ale také IBM Lotus Notes. Pro odeslání žádosti o schůzku v Lotus Notes postupujte podle stejných kroků uvedených výše.

Přeposlat e‑mail pomocí SMTP klienta

Přeposílání e‑mailu pomocí SMTP klienta

Přeposílání e‑mailu je běžná praxe v každodenní digitální komunikaci. Přijatý e‑mail může být přeposlán konkrétním příjemcům bez sdílení s původními odesílateli. Aspose.Email API SmtpClient poskytuje možnost přeposlat e‑mail konkrétním příjemcům. Jeho Přeposlat metoda může být použita k přeposlání přijatého nebo uloženého e‑mailu požadovaným příjemcům, jak je ukázáno v tomto článku. Následující úryvek kódu ukazuje, jak přeposlat e‑mail pomocí SMTP klienta.

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

Přeposílání e‑mailu bez použití MailMessage

API také podporuje přeposílání EML zpráv bez předchozího načtení do MailMessage. To je užitečné v případech, kdy jsou omezené prostředky systému, jako je paměť.

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

Provádění hromadného dopisu

Hromadné dopisy vám pomáhají vytvořit a odeslat skupinu podobných e‑mailových zpráv. Základ e‑mailů je stejný, ale obsah lze personalizovat. Typicky se k personalizaci e‑mailu používají kontaktní údaje příjemce (jméno, příjmení, firma atd.).

|Ilustrace, jak hromadné rozesílání funguje:| | :- | |todo:image_alt_text| Aspose.Email umožňuje vývojářům nastavit hromadné rozesílání, které zahrnuje data z různých zdrojů dat.

Pro provedení hromadného dopisu pomocí Aspose.Email postupujte podle následujících kroků:

  1. Vytvořte funkci s podpisem názvu
  2. Vytvořte instanci MailMessage třída.
  3. Zadejte odesílatele, příjemce, předmět a tělo zprávy.
  4. Vytvořte podpis pro konec e‑mailu.
  5. Vytvořte instanci TemplateEngine třídě a předáte jí MailMessage instance.
  6. Získejte podpis v TemplateEngine instance.
  7. Vytvořte instanci DataTable třída.
  8. Přidejte sloupce Receipt, FirstName a LastName jako zdroje dat v DataTable třída.
  9. Vytvořte instanci DataRow třída.
  10. Zadejte adresu příjemce, jméno a příjmení v DataRow objektu.
  11. Vytvořte instanci MailMessageCollection třída
  12. Určete TemplateEngine  a DataTable instance v MailMessageCollection instance.
  13. Vytvořte instanci SmtpClient třída a specifikujte server, port, uživatelské jméno a heslo.
  14. Odesílejte e‑maily pomocí SmtpClient třída send metoda.

Ve vzorku níže, #FirstName# označuje DataTable sloupec, jehož hodnota je nastavena uživatelem. Následující úryvek kódu ukazuje, jak provést hromadné rozesílání.

// 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();
}

Provádění řádkového hromadného rozesílání

Uživatel může sloučit také jednotlivý datový řádek a získat tak kompletní a připravený MailMessage objekt. Tento TemplateEngine.merge metoda může být použita k provedení řádkového hromadného rozesílání.

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