Lua Requires Chilkat v11.0.0+
Lua
POP3 using HTTP Proxy
Demonstrates how to communicate with a POP3 server through an HTTP proxy.Chilkat Lua Downloads
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()