Sample code for 30+ languages & platforms
Java

Send Email to Distribution List

See more SMTP Examples

Sends the same email to a list of 1000 email addresses in 50 sends where each email has 20 recipients.

Note: Chilkat is not intended nor designed for mass emailing. A solution such as this might be used for a corporate emailing to employees, or an emailing to newsletter subscribers.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.BinData;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Email;
import com.chilkatsoft.chilkat2.MailMan;
import com.chilkatsoft.chilkat2.StringBuilder;
import com.chilkatsoft.chilkat2.StringTable;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        MailMan mailman = new MailMan();

        mailman.setSmtpHost("smtp.mymailserver.com");
        mailman.setSmtpPort(465);
        mailman.setSmtpSsl(true);
        mailman.setSmtpUsername("myUsername");
        mailman.setSmtpPassword("myPassword");

        // Create a new email object
        Email email = new Email();
        email.setSubject("This is a test");
        email.setBody("This is a test");
        email.setFrom("Senders Name <sender@example.com>");
        email.addTo("Subscribers", "subscribers@example.com");

        BinData bdMime = new BinData();
        mailman.renderToMimeBd(email, bdMime);

        // Load a file containing one email address per line.
        StringTable distList = new StringTable();
        try {
            distList.appendFromFile(1000, "utf-8", "qa_data/distList.txt");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        StringBuilder sbRecipients = new StringBuilder();

        int i = 0;
        int szDistList = distList.getCount();
        int j = 0;
        while (i < szDistList) {
            // Build a list of comma-separated recipients.
            if (j > 0) {
                sbRecipients.append(",");
            }

            sbRecipients.append(distList.stringAt(i));

            i = i + 1;
            j = j + 1;

            // If we have 20 recipients, or we have the final recipient in the final chunk, then send.
            if ((j == 20) || (i == szDistList)) {
                try {
                    mailman.sendMimeBd("sender@example.com", sbRecipients.getAsString(), bdMime);
                } catch (ChilkatException e) {
                    System.out.println(e.getLastErrorText());
                    return;
                }

                j = 0;
                sbRecipients.clear();
            }
        }

        try {
            mailman.closeSmtpConnection();
        } catch (ChilkatException e) {
            System.out.println("Connection to SMTP server not closed cleanly.");
        }

        System.out.println("Email sent to distirbution list.");
    }
}