Lua Requires Chilkat v11.0.0+
Lua
IMAP STARTTLS (Explicit TLS/SSL)
The StartTls property is set to force the Connect method to automatically convert an connection to TLS/SSL via the STARTTLS IMAP command.This is also known as "explicit TLS/SSL" as opposed to "implicit TLS/SSL". With implicit TLS/SSL, the IMAP client connects on the well-known IMAP TLS/SSL port 993 and the secure channel is immediately established. With explicit TLS/SSL, the IMAP client connects on the typical non-secure port (143 usually) and the converts the connection via the STARTTLS command.
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.
local imap = chilkat.Imap.new()
-- Indicate that STARTTLS should be used to convert
-- to a secure TLS/SSL connection:
imap.start_tls = true
imap.port = 143
-- Connect to an IMAP server and convert the connection
-- to TLS/SSL via STARTTLS.
local success = imap:connect("imap.example.com")
if not success then
print(imap.last_error_text)
return
end
-- The remainder of this example is the same as for
-- non-TLS/SSL...
-- Login
success = imap:login("myLogin", "myPassword")
if not success then
print(imap.last_error_text)
return
end
-- Select an IMAP mailbox
success = imap:select_mailbox("Inbox")
if not success then
print(imap.last_error_text)
return
end
-- Get the message IDs of all the emails in the mailbox
local fetchUids = true
local messageSet = chilkat.MessageSet.new()
success = imap:query_mbx("ALL", fetchUids, messageSet)
if not success then
print(imap.last_error_text)
return
end
-- Fetch the emails into a bundle object:
local bundle = chilkat.EmailBundle.new()
local headersOnly = false
success = imap:fetch_msg_set(headersOnly, messageSet, bundle)
if not success then
print(imap.last_error_text)
return
end
-- Loop over the bundle and display the FROM and SUBJECT of each.
local email = chilkat.Email.new()
local i = 0
local numEmails = bundle.message_count
while i < numEmails do
bundle:email_at(i, email)
print(email.from)
print(email.subject)
print("--")
i = i + 1
end
-- Disconnect from the IMAP server.
success = imap:disconnect()