Sample code for 30+ languages & platforms
Java Requires Chilkat v11.0.0+

POP3 using HTTP Proxy

Demonstrates how to communicate with a POP3 server through an HTTP proxy.

Chilkat Java Downloads

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

public class ChilkatExample {

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

        // The mailman object is used for receiving (POP3)
        // and sending (SMTP) email.
        MailMan mailman = new MailMan();

        // To connect through an HTTP proxy, set the HttpProxyHostname
        // and HttpProxyPort properties to the hostname (or IP address)
        // and port of the HTTP proxy.  Typical port numbers used by
        // HTTP proxy servers are 3128 and 8080.
        mailman.setHttpProxyHostname("www.my-http-proxy.com");
        mailman.setHttpProxyPort(3128);

        // Important:  Your HTTP proxy server must allow non-HTTP
        // traffic to pass.  Otherwise this does not work.

        // Set the POP3 server's hostname
        mailman.setMailHost("pop.example.com");

        // Set the POP3 login/password.
        mailman.setPopUsername("myLogin");
        mailman.setPopPassword("myPassword");

        // Copy the all email from the user's POP3 mailbox
        // into a bundle object.  The email remains on the server.
        //
        // NOTE: All methods that communicate with a POP3 server
        // will automatically connect and authenticate (i.e. login)
        // if not already connected.  The connection will remain
        // open after the method call returns so that subsequent
        // calls do not need to re-establish the connection.
        // In this case, the connection is established via the HTTP
        // proxy.
        EmailBundle bundle = new EmailBundle();
        boolean keepOnServer = true;
        boolean headersOnly = false;
        // Irrelevent because we are not downloading headers-only
        int numBodyLines = 0;
        try {
            mailman.fetchAll(keepOnServer, headersOnly, numBodyLines, bundle);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        Email email = new Email();
        int i = 0;
        while (i < bundle.getMessageCount()) {
            bundle.emailAt(i, email);

            System.out.println("From: " + email.getFrom());
            System.out.println("Subject: " + email.getSubject());
            i = i + 1;
        }

        mailman.pop3EndSession();
    }
}