Sample code for 30+ languages & platforms
Java

Open a Persistent SMTP Connection

See more SMTP Examples

Demonstrates the Chilkat MailMan.OpenSmtpConnection method, which explicitly opens a connection to the SMTP server and authenticates if a username and password, OAuth2 token, or other applicable settings have been provided. This example opens the connection, notes where sending would occur, and closes it.

Background: By default, sending a single email opens a connection, sends, and closes it. When sending many messages, that per-message overhead adds up. Explicitly calling OpenSmtpConnection once, sending in a loop, then CloseSmtpConnection keeps a single authenticated session open for the whole batch — substantially faster and gentler on the server than reconnecting each time.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.MailMan;

public class ChilkatExample {

    public static void main(String[] args) {
        // Demonstrates the MailMan.OpenSmtpConnection method, which explicitly opens a connection
        // to the SMTP server and authenticates if credentials (or an OAuth2 token) have been
        // provided.

        MailMan mailman = new MailMan();

        // Configure the SMTP server connection.
        mailman.setSmtpHost("smtp.example.com");
        mailman.setSmtpPort(465);
        mailman.setSmtpSsl(true);
        mailman.setSmtpUsername("user@example.com");
        mailman.setSmtpPassword("myPassword");

        // Explicitly open (and authenticate) the SMTP connection.

        try {
            mailman.openSmtpConnection();
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("SMTP connection opened.");

        // ... send one or more emails here ...

        // Close the connection when done.
        try {
            mailman.closeSmtpConnection();
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }
    }
}