Lua Requires Chilkat v11.0.0+
Lua
How to Download Messages in MessageSet One at a Time
See more IMAP Examples
If a message set contains a huge number of emails, it's NOT a good idea to try to download all at once into an email bundle using a method such as FetchBundle. It's better to iterate over the messages in the set to download one by one.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local imap = chilkat.Imap.new()
-- Connect using 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
-- Authenticate
success = imap:login("email_account_login", "email_account_password")
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
-- Search for messages and return a set of matching messages.
-- (This example will simply search for ALL messages.)
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
print("Number of messages = " .. messageSet.count)
local email = chilkat.Email.new()
local i = 0
while i < messageSet.count do
success = imap:fetch_email(false, messageSet:get_id(i), fetchUids, email)
if not success then
print(imap.last_error_text)
return
end
print(email.from .. "; " .. email.subject)
i = i + 1
end
print("OK")