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

SOCKS4, SOCKS5 Proxy for POP3

Demonstrates how to communicate with a POP3 server through a SOCKS4 or SOCKS5 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 requires 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 use a SOCKS4 or SOCKS5 proxy, simply set the following
        // properties prior to making any calls that communicate with
        // a POP3 server:
        // The SOCKS hostname may be a domain name or
        // IP address:
        mailman.setSocksHostname("www.mysocksproxyserver.com");
        mailman.setSocksPort(1080);
        mailman.setSocksUsername("myProxyLogin");
        mailman.setSocksPassword("myProxyPassword");
        // Set the SOCKS version to 4 or 5 based on the version
        // of the SOCKS proxy server:
        mailman.setSocksVersion(5);
        // Note: SOCKS4 servers only support usernames without passwords.
        // SOCKS5 servers support full login/password authentication.

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