Sample code for 30+ languages & platforms
Lua 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 Lua Downloads

Lua
local chilkat = require("chilkat")

-- 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.
local mailman = chilkat.MailMan.new()

-- 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.socks_hostname = "www.mysocksproxyserver.com"
mailman.socks_port = 1080
mailman.socks_username = "myProxyLogin"
mailman.socks_password = "myProxyPassword"
-- Set the SOCKS version to 4 or 5 based on the version
-- of the SOCKS proxy server:
mailman.socks_version = 5
-- Note: SOCKS4 servers only support usernames without passwords.
-- SOCKS5 servers support full login/password authentication.

-- Set the POP3 server's hostname
mailman.mail_host = "pop.example.com"

-- Set the POP3 login/password.
mailman.pop_username = "myLogin"
mailman.pop_password = "myPassword"

-- Copy the all email from the user's POP3 mailbox
-- into a bundle object.  The email remains on the server.
local bundle = chilkat.EmailBundle.new()
local keepOnServer = true
local headersOnly = false
-- Irrelevent because we are NOT downloading headers-only
local numBodyLines = 0
local success = mailman:fetch_all(keepOnServer, headersOnly, numBodyLines, bundle)
if not success then
    print(mailman.last_error_text)
    return
end

local email = chilkat.Email.new()
local i = 0
while i < bundle.message_count do
    bundle:email_at(i, email)

    print("From: " .. email.from)
    print("Subject: " .. email.subject)
    i = i + 1
end

mailman:pop3_end_session()