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

POP3 using HTTP Proxy

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

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

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

-- 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.http_proxy_hostname = "www.my-http-proxy.com"
mailman.http_proxy_port = 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.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.
--
-- 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.
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

success = mailman:pop3_end_session()