Skicka och vidarebefordra meddelanden - Skicka Outlook‑e‑postmeddelanden med Java‑program

Den SmtpClient klass möjliggör för applikationer att skicka e‑post med Simple Mail Transfer Protocol (SMTP).

  • Den SmtpClient klass är den enda huvudentrén utvecklare använder för att skicka e‑postmeddelanden.
  • Den SmtpClient klass erbjuder också andra vanliga e‑postleveransmetoder, inklusive att skriva e‑postmeddelanden till filsystemet, meddelandekö etc.
  • Den SmtpClient klass stöder fullt ut dessa två programmeringsmodeller:
  • Den SmtpClient klass stödjer också skicka meddelanden som TNEF

För att skicka e‑postmeddelandet och blockera medan du väntar på att e‑posten ska överföras till SMTP‑servern, använd en av de synkrona Send‑metoderna. För att låta programmets huvudtråd fortsätta köra medan e‑posten överförs, använd beginSend metod.

Skicka e‑post synkront

Ett e‑postmeddelande kan skickas synkront med SmtpClient klass send metod. Den skickar det angivna e‑postmeddelandet via en SMTP‑server för leverans. Avsändare, mottagare, ämne och meddelandetext specificeras med String‑objekt. För att skicka ett e‑postmeddelande synkront, följ stegen nedan:

  1. Skapa en instans av MailMessage klass och sätt dess egenskaper.
  2. Skapa en instans av SmtpClient klass och ange värd, port, användarnamn & lösenord.
  3. Skicka meddelandet med den SmtpClient klass send metod och skicka MailMessage instans.

Följande Java‑kodexempel visar hur du skickar Outlook‑e‑post synkront.

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

Skicka e‑post asynkront

Ibland kan du vilja skicka e‑post asynkront. Till exempel, om du skickar mycket e‑post via din applikation, kanske det synkrona tillvägagångssättet inte fungerar. I ett sådant scenario kan du använda beginSend. Klassen beginSend metod för SmtpClient klass skickar ett e‑postmeddelande till en SMTP‑server för leverans. Denna metod blockerar inte den anropande tråden och tillåter anroparen att skicka ett objekt till metoden som anropas när operationen är klar. För att skicka ett Outlook‑e‑postmeddelande asynkront i Java, följ dessa steg:

  1. Skapa en instans av MailMessage klass och använda dess olika egenskaper.
  2. Skapa en instans av SmtpClient klass och ange värd, port, användarnamn och lösenord.
  3. Skapa en användardefinierad instans som ska skickas till metoden och anropas när den asynkrona operationen slutförs.
  4. Skicka meddelandet med beginSend metod för SmtpClient klass och skicka MailMessage instans och användardefinierad instans i den tillsammans med en callback‑funktion som ska anropas när operationen är slutförd.

För att få en avisering när e‑postmeddelandet har skickats eller operationen har avbrutits, callback‑funktionen som skickas till beginSend metod anropas. Efter att ha anropat den SmtpClient klass beginSend metod det är inte nödvändigt att vänta på att ett e‑postmeddelande ska skickas helt. Vi kan anropa en annan metod beginSend samtidigt. När ett e‑postmeddelande har skickats med beginSend metod, kodsnutten skriver ut ett meddelande ("Message Sent"). Följande Java‑program eller kodsnutt visar hur du skickar e‑post asynkront.

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

Skicka lagrade meddelanden från disk

EML‑filer (Outlook Express Electronic Mail‑filer) innehåller ett e‑posthuvud, meddelandekropp och eventuella bilagor. Aspose.Email låter utvecklare arbeta med EML‑filer på olika sätt. Denna artikel visar hur man laddar EML‑filer från disk och skickar dem som e‑post med SMTP. Du kan ladda .eml‑filer från disk eller ström in i MailMessage klass och skicka e‑postmeddelandet med SmtpClient klass. Den MailMessage klass är huvudklassen för att skapa nya e‑postmeddelanden, läsa in e‑postmeddelandefiler från disk eller ström och spara meddelandena. Följande Java‑kodsnutt visar hur man skickar lagrade meddelanden från disken.

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

Skicka rentext‑e‑post

Programmeringsexemplen nedan visar hur du skickar ett rentext‑e‑postmeddelande. Kropp egenskap, en egenskap i MailMessage klass, som används för att specificera rentext‑innehållet i meddelandekroppen. För att skicka ett rentext‑e‑postmeddelande, följ dessa steg:

  • Skapa en instans av MailMessage klass.
  • Ange avsändar‑ och mottagare‑e‑postadresser i MailMessage instans.
  • Specificera Kropp innehåll, som används för rentext‑meddelandet.
  • Skapa en instans av SmtpClient klass och skicka e‑posten.

Följande kodsnutt visar hur du skickar ett rentext‑e‑postmeddelande.

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

Skicka e‑post med HTML‑kropp

Programmeringsexemplen nedan visar hur du kan skicka ett enkelt HTML‑e‑postmeddelande. HtmlBody, en egenskap i MailMessage klass, som används för att specificera HTML‑innehållet i meddelandekroppen. För att skicka ett enkelt HTML‑e‑postmeddelande, följ dessa steg:

  • Skapa en instans av MailMessage klass.
  • Ange avsändar‑ och mottagare‑e‑postadress i MailMessage instans.
  • Specificera HtmlBody innehåll.
  • Skapa en instans av SmtpClient klass och skicka e‑posten med send metod.

För syftet med den här artikeln är HTML‑innehållet i e‑posten rudimentärt: This is the HTML body De flesta HTML‑e‑postmeddelanden är mer komplexa. Följande Java‑programsnutt visar hur du skickar ett e‑postmeddelande med HTML‑kropp.

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

Skicka e‑post med alternativ meddelandetext

Programmeringsexemplen nedan visar hur du skickar ett enkelt HTML‑e‑postmeddelande med alternativt innehåll. Använd AlternateView klass för att specificera kopior av ett e‑postmeddelande i olika format. Till exempel, om du skickar ett meddelande i HTML kan du även vilja tillhandahålla en vanlig text‑version för mottagare som använder e‑postläsare som inte kan visa HTML‑innehåll. Eller om du skickar ett nyhetsbrev kan du vilja ge en ren text‑kopia av innehållet till mottagare som har valt att få en ren text‑version. Följ dessa steg för att skicka ett e‑postmeddelande med alternativ text:

  1. Skapa en instans av MailMessage klass.
  2. Ange avsändar- och mottagare‑e‑postadresser i MailMessage instans.
  3. Skapa en instans av AlternateView klass.

Detta skapar en alternativ vy för ett e‑postmeddelande med innehållet som anges i strängen.

  1. Lägg till en instans av AlternateView klass till MailMessage objekt.
  2. Skapa en instans av SmtpClient klass och skicka e‑posten med send metod.

Följande kodsnutt visar hur du skickar ett e‑postmeddelande med alternativ text.

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

Skicka bulk‑e‑post

Att skicka e‑post i bulk innebär att skicka en grupp e‑postmeddelanden i ett meddelande. Vi kan skicka en grupp e‑post med hjälp av SmtpClient klass send metodöverkursning som accepterar en MailMessageCollection klass:

  1. Skapa en instans av SmtpClient klass.
  2. Specificera SmtpClient klassens egenskaper.
  3. Skapa en instans av MailMessage klass.
  4. Ange avsändare, mottagare, e‑postämne och meddelande i instansen av MailMessage klass.
  5. Upprepa de två föregående stegen igen om du vill skicka e‑post till en annan person.
  6. Skapa en instans av MailMessageCollection klass.
  7. Lägg till en instans av MailMessage klassen i objektet av MailMessageCollection klass.
  8. Skicka nu ditt e‑postmeddelande med SmtpClient klass send metod genom att skicka en instans av MailMessageCollection klass i den.

Följande kodsnutt visar hur du skickar bulk‑e‑post.

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

Hämta information om skickade bulkmeddelanden

När du skickar meddelanden i bulk kan du få information om antalet framgångsrikt skickade meddelanden och en lista över dessa meddelanden. SucceededSending händelse används för detta ändamål.

Kodexemplet nedan visar hur du får information om antalet meddelanden som skickats framgångsrikt:

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

Skicka e‑post med MultiConnection

SmtpClient ger en UseMultiConnection egenskap som kan användas för att skapa flera anslutningar för tunga operationer. Du kan också ange antalet anslutningar som ska användas under multikonnectionsläget genom att använda SmtpClient.ConnectionsQuantity. Följande kodsnutt demonstrerar användningen av multikonnectionsläget för att skicka flera meddelanden.

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

Skicka ett meddelande som TNEF

TNEF‑e‑post har speciell formatering som kan gå förlorad om den skickas med standard‑API. Aspose.Email ger möjlighet att skicka e‑post som TNEF, vilket bevarar formatet. SmtpClient klass UseTnef egenskap kan ställas in för att skicka e‑posten som TNEF. Följande kodexempel visar hur du skickar ett meddelande som 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);

Skicka mötesförfrågningar

Microsoft Outlook erbjuder både kalenderfunktioner och e‑posthantering. När en användare öppnar ett e‑postmeddelande med en inbjudan till ett evenemang, uppmanar Outlook dem att acceptera eller avvisa inbjudan. Aspose.Email låter utvecklare lägga till kalenderfunktioner i dina e‑postmeddelanden.

Skicka förfrågningar via e‑post

För att skicka mötesförfrågningar via e‑post, följ dessa steg:

|iCalendar‑mötesförfrågan skickad via e‑post| | :- | |todo:image_alt_text| Följande kodexempel visar hur du skickar förfrågningar via e‑post.

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

iCalendar‑stöd för IBM Lotus Notes

Aspose.Email kalenderfunktion är baserad på iCalendar‑standarden, en standard för kalenderdatautbyte (RFC 2445 eller RFC2445 Syntax Reference). Därmed stödjer den inte bara Microsoft Outlook utan även IBM Lotus Notes. För att skicka en mötesförfrågan i Lotus Notes, följ samma steg som nämns ovan.

Vidarebefordra ett e‑postmeddelande med SMTP‑klient

Vidarebefordra e‑post med SMTP‑klient

Att vidarebefordra ett e‑postmeddelande är en vanlig praxis i daglig digital kommunikation. Ett mottaget e‑postmeddelande kan vidarebefordras till specifika mottagare utan att dela med de ursprungliga avsändarna. Aspose.Email API SmtpClient ger möjlighet att vidarebefordra ett e‑postmeddelande till specifika mottagare. Dess Vidarebefordra metod kan användas för att vidarebefordra ett mottaget eller sparat e‑postmeddelande till önskade mottagare som visas i denna artikel. Följande kodexempel visar hur du vidarebefordrar ett e‑postmeddelande med SMTP‑klient.

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

Vidarebefordra e‑post utan att använda MailMessage

API:et stödjer även att vidarebefordra EML‑meddelanden utan att först ladda in i MailMessage. Detta är användbart i fall där det finns begränsade resurser avseende systemminne.

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

Utföra postfusion

Mailfusioner hjälper dig att skapa och skicka en grupp av liknande e‑postmeddelanden. Kärnan i e‑postmeddelandena är densamma, men innehållet kan personifieras. Vanligtvis används mottagarens kontaktuppgifter (förnamn, efternamn, företag osv.) för att personifiera e‑posten.

|Illustration av hur en mail merge fungerar:| | :- | |todo:image_alt_text| Aspose.Email låter utvecklare skapa mail merges som inkluderar data från en mängd olika datakällor.

För att utföra en postfusion med Aspose.Email, följ dessa steg:

  1. Skapa en funktion med namnsignaturen
  2. Skapa en instans av MailMessage klass.
  3. Ange avsändare, mottagare, ämne och meddelandetext.
  4. Skapa en signatur för slutet av e‑postmeddelandet.
  5. Skapa en instans av TemplateEngine klass och skicka den till MailMessage instans.
  6. Ta signatur i TemplateEngine instans.
  7. Skapa en instans av DataTable klass.
  8. Lägg till kolumnerna Receipt, FirstName och LastName som datakällor i DataTable klass.
  9. Skapa en instans av DataRow klass.
  10. Ange mottagaradressen, för- och efternamn i DataRow objekt.
  11. Skapa en instans av MailMessageCollection klass
  12. Specificera TemplateEngine  och DataTable instanser i MailMessageCollection instans.
  13. Skapa en instans av SmtpClient klass och ange server, port, användarnamn och lösenord.
  14. Skicka e‑post med SmtpClient klass send metod.

I exemplet nedan indikerar #FirstName# en DataTable kolumn, vars värde sätts av användaren. Följande kodexempel visar hur du utför Mail Merge.

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

Utföra rad‑vis Mail Merge

Användaren kan också slå ihop enskilda datarader för att få en komplett och förberedd MailMessage objektet. Det TemplateEngine.merge metod kan användas för att utföra en rad‑vis mail merge.

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