Berichten verzenden en doorsturen - Outlook‑e‑mailberichten verzenden met Java‑programma
De SmtpClient klasse stelt applicaties in staat e‑mail te verzenden via het Simple Mail Transfer Protocol (SMTP).
- De SmtpClient klasse is de enige belangrijke ingang die ontwikkelaars gebruiken om e‑mailberichten te verzenden.
- De SmtpClient klasse biedt ook andere veelvoorkomende e‑mailbezorgmethoden, waaronder het schrijven van e‑mailberichten naar het bestandssysteem, berichtwachtrij enz.
- De SmtpClient klasse ondersteunt volledig deze twee programmeermodellen:
- De SmtpClient klasse ondersteunt ook berichten verzenden als TNEF
Om het e‑mailbericht te verzenden en te blokkeren totdat het e‑mailbericht naar de SMTP‑server is verzonden, gebruikt u een van de synchrone Send‑methoden. Om de hoofdthread van uw programma te laten doorgaan terwijl het e‑mailbericht wordt verzonden, gebruikt u de beginSend methode.
E‑mail synchronisch verzenden
Een e‑mailbericht kan synchronisch worden verzonden met behulp van de SmtpClient klasse send methode. Deze verzendt het opgegeven e‑mailbericht via een SMTP‑server voor aflevering. Afzender, ontvangers, onderwerp en berichtinhoud worden opgegeven met String‑objecten. Om een e‑mailbericht synchronisch te verzenden, volg de onderstaande stappen:
- Maak een instantie van MailMessage klasse en stel de eigenschappen in.
- Maak een instantie van SmtpClient klasse en specificeer de host, poort, gebruikersnaam & wachtwoord.
- Verzend het bericht met behulp van de SmtpClient klasse send methode en geef de MailMessage instantie.
De volgende Java‑codefragment laat zien hoe u Outlook‑e‑mails synchronisch verzendt.
// 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);
}
E‑mail asynchroon verzenden
Soms wilt u e‑mail asynchroon verzenden. Bijvoorbeeld, als u veel e‑mail verzendt via uw applicatie, kan de synchrone aanpak niet werken. In zo’n scenario kunt u gebruikmaken van beginSend. De beginSend methode van de SmtpClient klasse verzendt een e‑mailbericht naar een SMTP‑server voor aflevering. Deze methode blokkeert de aanroepende thread niet en stelt de aanroeper in staat een object door te geven aan de methode dat wordt aangeroepen wanneer de bewerking is voltooid. Om een Outlook‑e‑mailbericht asynchroon te verzenden in Java, volg deze stappen:
- Maak een instantie van MailMessage klasse en gebruik de verschillende eigenschappen ervan.
- Maak een instantie van SmtpClient klasse en specificeer de host, poort, gebruikersnaam en wachtwoord.
- Maak een door de gebruiker gedefinieerde instantie die aan de methode wordt doorgegeven en wordt aangeroepen wanneer de asynchrone bewerking is voltooid.
- Verzend het bericht met behulp van beginSend methode van SmtpClient klasse en geef de MailMessage instantie en een door de gebruiker gedefinieerde instantie hierin, samen met een callback‑functie die moet worden aangeroepen wanneer de bewerking is voltooid.
Om een melding te ontvangen wanneer de e‑mail is verzonden of de bewerking is geannuleerd, moet de callback‑functie die is doorgegeven aan de beginSend methode wordt aangeroepen. Na het aanroepen van de SmtpClient klasse beginSend met de methode is het niet nodig om te wachten tot een e‑mailbericht volledig is verzonden. We kunnen een andere methode aanroepen beginSend tegelijkertijd. Wanneer een e‑mail is verzonden met de beginSend methode, print het codefragment een bericht ("Message Sent"). Het volgende Java‑programma of codefragment toont hoe u e‑mails asynchroon kunt verzenden.
// 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.");
}
}
};
Opslaan van berichten vanaf schijf verzenden
EML‑bestanden (Outlook Express Electronic Mail‑bestanden) bevatten een e‑mailheader, berichtinhoud en eventuele bijlagen. Aspose.Email stelt ontwikkelaars in staat om met EML‑bestanden op verschillende manieren te werken. Dit artikel laat zien hoe u EML‑bestanden van schijf kunt laden en ze als e‑mails kunt verzenden via SMTP. U kunt .eml‑bestanden van schijf of stream laden in de MailMessage klasse en verzend het e‑mailbericht met de SmtpClient klasse. De MailMessage klasse is de hoofdklasse voor het maken van nieuwe e‑mailberichten, het laden van e‑mailberichtbestanden van schijf of stream en het opslaan van de berichten. Het volgende Java‑codefragment toont hoe opgeslagen berichten van de schijf te verzenden.
// 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());
}
Platte‑tekst‑e‑mail verzenden
De programmeervoorbeelden hieronder laten zien hoe u een platte‑tekst‑e‑mailbericht kunt verzenden. De Body eigenschap, een eigenschap van de MailMessage klasse, wordt gebruikt om de platte‑tekstinhoud van het berichtgedeelte te specificeren. Volg de onderstaande stappen om een platte‑tekst‑e‑mail te verzenden:
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender‑ en ontvanger‑e‑mailadressen in de MailMessage instantie.
- Specificeer de Body inhoud, gebruikt voor het platte‑tekstbericht.
- Maak een instantie van de SmtpClient klasse en verzend de e‑mail.
Het volgende codefragment toont hoe u een platte‑tekst‑e‑mail kunt verzenden.
// 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);
}
E‑mail verzenden met HTML‑body
De programmeervoorbeelden hieronder laten zien hoe u een simpel HTML‑e‑mailbericht kunt verzenden. De HtmlBody, een eigenschap van de MailMessage klasse, wordt gebruikt om de HTML‑inhoud van het berichtgedeelte te specificeren. Volg de onderstaande stappen om een eenvoudige HTML‑e‑mail te verzenden:
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender‑ en ontvanger‑e‑mailadres in de MailMessage instantie.
- Specificeer de HtmlBody inhoud.
- Maak een instantie van de SmtpClient klasse en verzend de e‑mail met de send methode.
Voor het doel van dit artikel is de HTML‑inhoud van de e‑mail eenvoudig:
This is the HTML body De meeste HTML‑e‑mails zijn complexer. Het volgende Java‑programma‑fragment toont hoe u een e‑mail met HTML‑body kunt verzenden.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;
}
E‑mail verzenden met alternatieve berichttekst
De programmeervoorbeelden hieronder laten zien hoe u een simpel HTML‑e‑mailbericht met alternatieve inhoud kunt verzenden. Gebruik de AlternateView klasse om kopieën van een e‑mailbericht in verschillende formaten te specificeren. Bijvoorbeeld, als u een bericht in HTML verstuurt, wilt u wellicht ook een platte‑tekstversie aanbieden voor ontvangers die e‑mailclients gebruiken die geen HTML kunnen weergeven. Of, als u een nieuwsbrief verstuurt, wilt u mogelijk een platte‑tekstkopie van de tekst bieden voor ontvangers die ervoor gekozen hebben een platte‑tekstversie te ontvangen. Volg deze stappen om een e‑mail met alternatieve tekst te verzenden:
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender‑ en ontvanger‑e‑mailadressen in de MailMessage instantie.
- Maak een instantie van de AlternateView klasse.
Dit creëert een alternatieve weergave van een e‑mailbericht met de in de string gespecificeerde inhoud.
- Voeg de instantie van de AlternateView klasse naar de MailMessage object.
- Maak een instantie van de SmtpClient klasse en verzend de e‑mail met de send methode.
Het volgende codefragment toont hoe u een e‑mail met alternatieve tekst kunt verzenden.
// 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);
Bulk‑e‑mails verzenden
E‑mails in bulk verzenden betekent een reeks e‑mails in één bericht sturen. We kunnen een batch e‑mails verzenden met de van SmtpClient klasse send method overload die een MailMessageCollection klasse:
- Maak een instantie van SmtpClient klasse.
- Specificeer de SmtpClient klasse‑eigenschappen.
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender, ontvanger, onderwerp en bericht in de instantie van de MailMessage klasse.
- Herhaal de bovenstaande twee stappen opnieuw als u een e‑mail naar een andere persoon wilt sturen.
- Maak een instantie van MailMessageCollection klasse.
- Voeg een instantie toe van MailMessage klasse in het object van de MailMessageCollection klasse.
- Verstuur nu uw e‑mail met de SmtpClient klasse send methode door de instantie van MailMessageCollection klasse daarin.
Het volgende codefragment toont hoe u bulk‑e‑mails kunt verzenden.
// 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);
}
Informatie verkrijgen over verzonden bulkberichten
Wanneer u berichten in bulk verzendt, kunt u informatie krijgen over het aantal succesvol verzonden berichten en de lijst van deze berichten. De SucceededSending event wordt hiervoor gebruikt.
Het onderstaande codevoorbeeld toont hoe u informatie kunt krijgen over het aantal succesvol verzonden berichten:
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.");
}
E‑mails verzenden met MultiConnection
SmtpClient biedt een UseMultiConnection eigenschap die kan worden gebruikt om meerdere verbindingen voor zware bewerkingen te maken. U kunt ook het aantal verbindingen dat tijdens de multiverbindingsmodus wordt gebruikt instellen door gebruik te maken van SmtpClient.ConnectionsQuantity. Het volgende codefragment demonstreert het gebruik van de multiverbindingsmodus voor het verzenden van meerdere berichten.
// 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);
Een bericht verzenden als TNEF
TNEF‑e‑mails hebben een speciale opmaak die verloren kan gaan bij verzending via de standaard‑API. Aspose.Email biedt de mogelijkheid e‑mails als TNEF te verzenden, waardoor de opmaak behouden blijft. De SmtpClient klasse UseTnef eigenschap kan worden ingesteld om de e‑mail als TNEF te verzenden. Het volgende codefragment laat zien hoe u een bericht als TNEF verzendt.
// 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);
Vergaderverzoeken versturen
Microsoft Outlook biedt zowel agenda‑functies als e‑mailbeheer. Wanneer een gebruiker een e‑mail opent met een uitnodiging voor een gebeurtenis, vraagt Outlook of de uitnodiging geaccepteerd of afgewezen moet worden. Aspose.Email stelt ontwikkelaars in staat agenda‑functies aan uw e‑mails toe te voegen.
Vergaderverzoeken verzenden via e‑mail
Om vergaderverzoeken via e‑mail te versturen, volg deze stappen:
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender‑ en ontvangeradressen met een instantie van de MailMessage klasse.
- Initialiseer een instantie van de Appointment klasse en geef de waarden door.
- Specificeer samenvatting en beschrijving in de Calendar instantie.
- Voeg de toe Calendar) aan de MailMessage instantie en geef het de Appointment instantie.
|iCalendar‑vergaderverzoek verzonden per e‑mail| | :- | |
| Het volgende codefragment laat zien hoe u verzoeken via e‑mail verzendt.
// 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‑ondersteuning voor IBM Lotus Notes
De agenda‑functie van Aspose.Email is gebaseerd op de iCalendar‑standaard, een standaard voor agenda‑gegevensuitwisseling (RFC 2445 of RFC2445 Syntax Reference). Daarom ondersteunt het niet alleen Microsoft Outlook maar ook IBM Lotus Notes. Om een vergaderverzoek te sturen in Lotus Notes, volg dezelfde stappen als hierboven vermeld.
Een e‑mail doorsturen met SMTP‑client
E‑mail doorsturen met SMTP‑client
Het doorsturen van een e‑mail is een gangbare praktijk in de digitale communicatie van alledag. Een ontvangen e‑mail kan worden doorgestuurd naar specifieke ontvangers zonder te delen met de oorspronkelijke afzender. Aspose.Email‑API SmtpClient biedt de mogelijkheid om een e‑mail door te sturen naar specifieke ontvangers. De Doorsturen methode kan worden gebruikt om een ontvangen of opgeslagen e‑mail door te sturen naar gewenste ontvangers zoals in dit artikel wordt getoond. Het volgende codefragment laat zien hoe u een e‑mail doorstuurt met de SMTP‑client.
// 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);
E‑mail doorsturen zonder MailMessage te gebruiken
De API ondersteunt ook het doorsturen van EML‑berichten zonder deze eerst te laden in MailMessage. Dit is nuttig in gevallen waarin er beperkte bronnen zijn qua systeemgeheugen.
// 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);
}
}
Mail Merge uitvoeren
Mail merges helpen u bij het maken en verzenden van een batch soortgelijke e‑mailberichten. De kern van de e‑mails is hetzelfde, maar de inhoud kan worden gepersonaliseerd. Typisch worden de contactgegevens van de ontvanger (voornaam, achternaam, bedrijf, enz.) gebruikt om de e‑mail te personaliseren.
|Illustratie van hoe een mail merge werkt:| | :- | |
| Aspose.Email stelt ontwikkelaars in staat mail merges op te zetten die gegevens uit verschillende bronnen bevatten.
Om een mailmerge uit te voeren met Aspose.Email, volg de volgende stappen:
- Maak een functie met de naamhandtekening
- Maak een instantie van de MailMessage klasse.
- Specificeer afzender, ontvanger, onderwerp en inhoud.
- Maak een handtekening voor het einde van de e‑mail.
- Maak een instantie van de TemplateEngine klasse en geef het de MailMessage instantie.
- Neem handtekening in de TemplateEngine instantie.
- Maak een instantie van de DataTable klasse.
- Voeg de kolommen Receipt, FirstName en LastName toe als gegevensbronnen in de DataTable klasse.
- Maak een instantie van de DataRow klasse.
- Geef het ontvangstadres, voornaam en achternaam op in de DataRow object.
- Maak een instantie van de MailMessageCollection klasse
- Specificeer de TemplateEngine en DataTable instanties in de MailMessageCollection instantie.
- Maak een instantie van de SmtpClient klasse en specificeer de server, poort, gebruikersnaam en wachtwoord.
- E‑mails verzenden met de SmtpClient klasse send methode.
In het onderstaande voorbeeld geeft #FirstName# een DataTable kolom, waarvan de waarde door de gebruiker wordt ingesteld. Het volgende codefragment laat zien hoe u Mail Merge uitvoert.
// 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<Nancy@somedomain.com>");
dr.set("FirstName", "Nancy");
dr.set("LastName", "Doe");
dt.getRows().add(dr);
dr = dt.newRow();
dr.set("Receipt", "Andrew<Andrew@somedomain.com>");
dr.set("FirstName", "Andrew");
dr.set("LastName", "Doe");
dt.getRows().add(dr);
dr = dt.newRow();
dr.set("Receipt", "Janet<Janet@somedomain.com>");
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();
}
Rij‑gewijze mail merge uitvoeren
Gebruiker kan ook individuele gegevensrijen samenvoegen om een volledig en voorbereid MailMessage object. De TemplateEngine.merge methode kan worden gebruikt om een rij‑gewijze mail merge uit te voeren.
// Create message from the data in current row.
MailMessage message = engine.merge(currentRow);