Lua Requires Chilkat v11.0.0+
Lua
IMAP Download All Email One at a Time
Demonstrates how to download every email in an IMAP mailbox one at a time as a MIME string or as an email object. (The MIME contains the full contents of the email including all attachments.)Chilkat Lua Downloads
local chilkat = require("chilkat")
local imap = chilkat.Imap.new()
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Connect to an IMAP server.
-- Use TLS
imap.ssl = true
imap.port = 993
local success = imap:connect("imap.example.com")
if not success then
print(imap.last_error_text)
return
end
-- 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
-- Once the mailbox is selected, the NumMessages property
-- will contain the number of messages in the mailbox.
-- You may loop from 1 to NumMessages to
-- fetch each message by sequence number.
local bUid = false
local mimeStr = ""
local n = imap.num_messages
for i = 1, n do
-- Download the email by sequence number.
mimeStr = imap:fetch_single_as_mime(i, bUid)
-- ... your application may process each MIME string...
end
-- An alternative is to download each email in the form of an
-- email object, like this:
local email = chilkat.Email.new()
for i = 1, n do
-- Download the email by sequence number.
success = imap:fetch_email(false, i, bUid, email)
-- ... your application may process the email object...
end
-- Disconnect from the IMAP server.
success = imap:disconnect()