Mesajları Gönderme ve Yönlendirme - Java Programı Kullanarak Outlook E-posta Mesajları Gönderme

Bu SmtpClient class, uygulamaların Simple Mail Transfer Protocol (SMTP) kullanarak e-posta göndermesine olanak tanır.

E-posta mesajını göndermek ve SMTP sunucusuna iletilmesini beklerken bloklamak için senkron Send yöntemlerinden birini kullanın. E-posta iletilirken programınızın ana iş parçacığının çalışmaya devam etmesini istiyorsanız, şunu kullanın beginSend metod.

E-postaları Senkron Gönderme

Bir e-posta mesajı, aşağıdaki yöntemi kullanarak senkron olarak gönderilebilir: SmtpClient sınıf gönder method. Belirtilen e-posta mesajını teslim için bir SMTP sunucusu üzerinden gönderir. Mesaj göndericisi, alıcıları, konusu ve mesaj gövdesi String nesneleriyle belirtilir. E-posta mesajını senkron olarak göndermek için aşağıdaki adımları izleyin:

  1. Bir örnek oluştur MailMessage class ve özelliklerini ayarlayın.
  2. Bir örnek oluştur SmtpClient class ve Host, port, kullanıcı adı ve Şifreyi belirtin.
  3. Mesajı kullanarak gönderin SmtpClient sınıf gönder method ve geçirin MailMessage örnek.

Aşağıdaki Java kod parçacığı, Outlook e-postalarını senkron olarak nasıl göndereceğinizi gösterir.

// 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-postaları Asenkron Gönderme

Bazen e-postayı asenkron olarak göndermeniz gerekebilir. Örneğin, uygulamanız üzerinden çok miktarda e-posta gönderiyorsanız, senkron yaklaşım işe yaramayabilir. Böyle bir senaryoda şunu kullanabilirsiniz beginSend. The beginSend metodu SmtpClient class, teslim için bir e-posta mesajını SMTP sunucusuna gönderir. Bu method, çağıran iş parçacığını engellemez ve çağıranın, işlem tamamlandığında çalıştırılacak bir nesneyi methoda geçirmesine izin verir. Java’da Outlook e-posta mesajını asenkron olarak göndermek için aşağıdaki adımları izleyin:

  1. Bir örnek oluştur MailMessage class ve farklı özelliklerini kullanın.
  2. Bir örnek oluştur SmtpClient class ve host, port, kullanıcı adı ve şifreyi belirtin.
  3. Asenkron işlem tamamlandığında methoda geçirilip çalıştırılacak bir kullanıcı tanımlı örnek oluşturun.
  4. Mesajı kullanarak gönderin beginSend metodu SmtpClient class ve geçirin MailMessage örnek ve içinde kullanıcı tanımlı örnek, işlem tamamlandığında çağrılacak bir geri arama işlevi ile birlikte.

E-posta gönderildiğinde veya işlem iptal edildiğinde bir bildirim almak için, methoda geçirilen geri arama işlevi beginSend method çağrılır. Çağırdıktan sonra SmtpClient sınıf beginSend method e-posta mesajının tamamen gönderilmesini beklemek gerekli değildir. Başka bir method çağırabiliriz. beginSend aynı anda. Bir e-posta şu şekilde gönderildiğinde: beginSend yöntemi, kod parçacığı bir mesaj ("Message Sent") yazdırır. Aşağıdaki Java programı veya kod parçacığı, e-postaları eşzamanlı olarak nasıl göndereceğinizi gösterir.

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

Diskteki Saklanan Mesajları Gönderme

EML dosyaları (Outlook Express Elektronik Mail dosyaları) bir e-posta başlığı, mesaj gövdesi ve ekleri içerir. Aspose.Email, geliştiricilerin EML dosyalarıyla farklı şekillerde çalışmasına olanak tanır. Bu makale, EML dosyalarını diskten yükleyip SMTP ile e-posta olarak göndermeyi gösterir. .eml dosyalarını diskten veya akıştan şu sınıfa yükleyebilirsiniz: MailMessage sınıfı ve e-posta mesajını şu ile gönderin: SmtpClient sınıf. MailMessage sınıf, yeni e-posta mesajları oluşturmak, e-posta mesaj dosyalarını diskten veya akıştan yüklemek ve mesajları kaydetmek için ana sınıftır. Aşağıdaki Java kod parçacığı, diskten saklanan mesajları nasıl göndereceğinizi gösterir.

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

Düz Metin E-posta Gönderme

Aşağıdaki program örnekleri, düz metin bir e-posta mesajı göndermeyi gösterir. Gövde özellik, sınıfın bir özelliği MailMessage sınıfı, mesaj gövdesinin düz metin içeriğini belirtmek için kullanılır. Düz metin bir e-posta mesajı göndermek için şu adımları izleyin:

  • Şunun bir örneğini oluştur MailMessage sınıf.
  • Gönderici ve alıcı e-posta adreslerini şurada belirtin: MailMessage örnek.
  • Şunu belirtin: Gövde içerik, düz metin mesajı için kullanılır.
  • Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı gönder.

Aşağıdaki kod parçacığı, düz metin bir e-posta göndermeyi gösterir.

// 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 Gövdesiyle E-posta Gönderme

Aşağıdaki program örnekleri, basit bir HTML e-posta mesajı nasıl gönderebileceğinizi gösterir. HtmlBody, sınıfın bir özelliği MailMessage sınıfı, mesaj gövdesinin HTML içeriğini belirtmek için kullanılır. Basit bir HTML e-posta göndermek için şu adımları izleyin:

  • Şunun bir örneğini oluştur MailMessage sınıf.
  • Gönderici ve alıcı e-posta adresini şurada belirtin: MailMessage örnek.
  • Şunu belirtin: HtmlBody içerik.
  • Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı şu ile gönderin: gönder metod.

Bu makale için, e-postanın HTML içeriği basitçe şu şekildedir: Bu HTML gövdesidir Çoğu HTML e-posta daha karmaşık olacaktır. Aşağıdaki Java programı örneği, HTML gövdesiyle bir e-posta göndermeyi gösterir.

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

Alternatif Mesaj Metniyle E-posta Gönderme

Aşağıdaki program örnekleri, alternatif içeriğe sahip basit bir HTML e-posta mesajı göndermeyi gösterir. Şunu kullanın: AlternateView farklı biçimlerde e-posta mesajının kopyalarını belirtmek için sınıf. Örneğin, bir mesajı HTML olarak gönderiyorsanız, HTML içeriğini görüntüleyemeyen alıcılar için düz metin bir sürüm de sağlayabilirsiniz. Ya da bir bülten gönderiyorsanız, düz metin sürümünü tercih eden alıcılar için metnin düz metin kopyasını sunmak isteyebilirsiniz. Alternatif metinli bir e-posta göndermek için şu adımları izleyin:

  1. Şunun bir örneğini oluştur MailMessage sınıf.
  2. Gönderici ve alıcı e-posta adreslerini şu içinde belirtin: MailMessage örnek.
  3. Şunun bir örneğini oluştur AlternateView sınıf.

Bu, dizede belirtilen içeriği kullanarak bir e-posta mesajına alternatif bir görünüm oluşturur.

  1. Şunun bir örneğini ekleyin: AlternateView sınıfı şuna MailMessage nesne.
  2. Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı şu ile gönderin: gönder metod.

Aşağıdaki kod parçacığı, alternatif metinli bir e-posta göndermeyi gösterir.

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

Toplu E-posta Gönderme

Toplu e-posta göndermek, bir mesajda bir grup e-posta göndermek anlamına gelir. Bir e-posta topluluğunu şu… SmtpClient sınıf gönder kabul eden metod aşırı yüklemesi MailMessageCollection sınıf:

  1. Bir örnek oluştur SmtpClient sınıf.
  2. Şunu belirtin: SmtpClient sınıf özelliklerinde.
  3. Şunun bir örneğini oluştur MailMessage sınıf.
  4. Gönderici, alıcı, e-posta konusu ve mesajı, şu sınıfın örneğinde belirtin: MailMessage sınıf.
  5. Farklı bir kişiye e-posta göndermek isterseniz yukarıdaki iki adımı tekrar edin.
  6. Bir örnek oluştur MailMessageCollection sınıf.
  7. Şunun bir örneğini ekleyin: MailMessage sınıfının nesnesinde MailMessageCollection sınıf.
  8. Şimdi e-postanızı şu ile gönderin: SmtpClient sınıf gönder yöntemi, şu sınıfın örneğini geçirerek MailMessageCollection içindeki sınıf.

Aşağıdaki kod parçacığı, toplu e-posta göndermeyi gösterir.

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

Toplu Gönderilen Mesajlar Hakkında Bilgi Edinme

Mesajları toplu olarak gönderdiğinizde, başarıyla gönderilen mesaj sayısı ve bu mesajların listesini öğrenebilirsiniz. SucceededSending event bu amaçla kullanılır.

Aşağıdaki kod örneği, başarıyla gönderilen mesaj sayısı ile ilgili bilgi almayı gösterir:

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

MultiConnection ile E-posta Gönderme

SmtpClient sağlar UseMultiConnection ağır işlemler için birden fazla bağlantı oluşturmak amacıyla kullanılabilen özellik. Çoklu bağlantı modunda kullanılacak bağlantı sayısını şu şekilde ayarlayabilirsiniz: SmtpClient.ConnectionsQuantity. Aşağıdaki kod parçacığı, birden fazla mesaj gönderimi için çoklu bağlantı modunun kullanımını göstermektedir.

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

Bir Mesajı TNEF Olarak Gönderme

TNEF e-postalarının özel bir biçimi vardır ve standart API kullanılarak gönderildiğinde kaybolabilir. Aspose.Email, e-postaları TNEF olarak gönderme yeteneği sağlar, böylece biçim korunur. Bu SmtpClient sınıf UseTnef özellik, e-postayı TNEF olarak göndermek için ayarlanabilir. Aşağıdaki kod parçacığı, bir mesajı TNEF olarak nasıl göndereceğinizi gösterir.

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

Toplantı İsteklerini Gönderme

Microsoft Outlook, takvim işlevleri ve e-posta yönetimi sunar. Bir kullanıcı bir etkinlik daveti içeren e-postayı açtığında, Outlook ona daveti kabul etme veya reddetme seçeneği sunar. Aspose.Email, geliştiricilerin e-postalarınıza takvim işlevleri eklemesine olanak tanır.

E-posta ile İstek Gönderme

E-posta ile toplantı isteği göndermek için aşağıdaki adımları izleyin:

  • Şunun bir örneğini oluştur MailMessage sınıf.
  • Gönderici ve alıcı adreslerini, şunun bir örneğini kullanarak belirtin: MailMessage sınıf.
  • Şu sınıfın bir örneğini başlatın: Appointment class ve değerlerini geçirin.
  • Özet ve açıklamayı şurada belirtin: Calendar örnek.
  • Şunu ekleyin Calendar) methoda MailMessage örnek ve ona şunu geçirin Appointment örnek.

|E-posta ile gönderilen iCalendar toplantı isteği| | :- | |todo:image_alt_text| Aşağıdaki kod parçacığı, e-posta ile istek göndermeyi gösterir.

// 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 için iCalendar Desteği

Aspose.Email takvim özelliği, takvim veri alışverişi için bir standart olan iCalendar standardına (RFC 2445 veya RFC2445 Syntax Reference) dayanmaktadır. Bu nedenle sadece Microsoft Outlook değil, IBM Lotus Notes da desteklenir. Lotus Notes’ta bir toplantı isteği göndermek için yukarıda belirtilen aynı adımları izleyin.

SMTP Client kullanarak E-posta Yönlendirme

SMTP istemcisi ile E-posta Yönlendirme

E-posta yönlendirme, günlük dijital iletişimde yaygın bir uygulamadır. Alınan bir e-posta, orijinal gönderenle paylaşmadan belirli alıcılara yönlendirilebilir. Aspose.Email API SmtpClient belirli alıcılara e-posta yönlendirme yeteneği sağlar. Bunun Yönlendir method, bu makalede gösterildiği gibi alınan veya kaydedilen bir e-postayı istenen alıcılara yönlendirmek için kullanılabilir. Aşağıdaki kod parçacığı SMTP Client kullanarak bir e-postayı nasıl yönlendireceğinizi gösterir.

// 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 Kullanılmadan E-posta Yönlendirme

API ayrıca EML mesajlarını önceden yüklemeden yönlendirmeyi de destekler MailMessage. Bu, sistem belleği açısından sınırlı kaynakların olduğu durumlarda faydalıdır.

// 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 İşlemi

Mail merge, benzer e-posta mesajlarından bir toplu oluşturup göndermenize yardımcı olur. E-postaların temel içeriği aynı olmakla birlikte, içerik kişiselleştirilebilir. Genellikle alıcıların iletişim bilgileri (ad, soyad, şirket vb.) e-postayı kişiselleştirmek için kullanılır.

|Mail merge nasıl çalışır gösterimi:| | :- | |todo:image_alt_text| Aspose.Email, geliştiricilerin çeşitli veri kaynaklarından veri içeren mail merge işlemleri oluşturmasına olanak tanır.

Aspose.Email ile bir posta birleştirme (mail merge) yapmak için aşağıdaki adımları izleyin:

  1. İmzası şu olan bir fonksiyon oluşturun:
  2. Şunun bir örneğini oluştur MailMessage sınıf.
  3. Göndericiyi, alıcıyı, konuyu ve gövdeyi belirtin.
  4. E-postanın sonu için bir imza oluşturun.
  5. Şunun bir örneğini oluştur TemplateEngine sınıfına ve ona MailMessage örnek.
  6. İmzayı al TemplateEngine örnek.
  7. Şunun bir örneğini oluştur DataTable sınıf.
  8. Sütunları Receipt, FirstName ve LastName veri kaynakları olarak şuraya ekleyin: DataTable sınıf.
  9. Şunun bir örneğini oluştur DataRow sınıf.
  10. Alıcı adresini, ad ve soyadını şuraya belirtin: DataRow nesne.
  11. Şunun bir örneğini oluştur MailMessageCollection sınıf
  12. Şunu belirtin: TemplateEngine  ve DataTable örnekler içinde MailMessageCollection örnek.
  13. Şunun bir örneğini oluştur SmtpClient class ve sunucu, port, kullanıcı adı ve şifreyi belirtin.
  14. Şu kullanarak e-posta gönderin: SmtpClient sınıf gönder metod.

Aşağıdaki örnekte, #FirstName# bir DataTable sütun, değerleri kullanıcı tarafından ayarlanır. Aşağıdaki kod parçacığı Mail Merge işlemini nasıl yapacağınızı gösterir.

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

Satır Satır Mail Merge İşlemi

Kullanıcı ayrıca eksiksiz ve hazırlanmış bir sonuç elde etmek için tek tek veri satırlarını birleştirebilir. MailMessage nesne. Bu TemplateEngine.merge method satır satır posta birleştirme (mail merge) yapmak için kullanılabilir.

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