Xbase++ Requires Chilkat v11.0.0+
Xbase++
SOCKS4, SOCKS5 Proxy for POP3
Demonstrates how to communicate with a POP3 server through a SOCKS4 or SOCKS5 proxy.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oMailman
LOCAL oBundle
LOCAL nKeepOnServer
LOCAL nHeadersOnly
LOCAL nNumBodyLines
LOCAL oEmail
LOCAL i
nSuccess := 0
// 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.
oMailman := CreateObject("Chilkat.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:
oMailman:SocksHostname := "www.mysocksproxyserver.com"
oMailman:SocksPort := 1080
oMailman:SocksUsername := "myProxyLogin"
oMailman:SocksPassword := "myProxyPassword"
// Set the SOCKS version to 4 or 5 based on the version
// of the SOCKS proxy server:
oMailman:SocksVersion := 5
// Note: SOCKS4 servers only support usernames without passwords.
// SOCKS5 servers support full login/password authentication.
// Set the POP3 server's hostname
oMailman:MailHost := "pop.example.com"
// Set the POP3 login/password.
oMailman:PopUsername := "myLogin"
oMailman:PopPassword := "myPassword"
// Copy the all email from the user's POP3 mailbox
// into a bundle object. The email remains on the server.
oBundle := CreateObject("Chilkat.EmailBundle")
nKeepOnServer := 1
nHeadersOnly := 0
// Irrelevent because we are NOT downloading headers-only
nNumBodyLines := 0
nSuccess := oMailman:FetchAll(nKeepOnServer, nHeadersOnly, nNumBodyLines, oBundle)
IF (nSuccess == 0)
? oMailman:LastErrorText
oMailman:destroy()
oBundle:destroy()
RETURN
ENDIF
oEmail := CreateObject("Chilkat.Email")
i := 0
DO WHILE i < oBundle:MessageCount
oBundle:EmailAt(i, oEmail)
? "From: " + oEmail:From
? "Subject: " + oEmail:Subject
i := i + 1
ENDDO
oMailman:Pop3EndSession()
oMailman:destroy()
oBundle:destroy()
oEmail:destroy()