Lua Requires Chilkat v11.0.0+
Lua
List IMAP Mailboxes
List the mailboxes available within an IMAP account.Chilkat Lua Downloads
-- In the following call to loadlib, change the path (./chilkat.dll) to the relative or absolute directory where the chilkat.dll, chilkat.so, or chilkat.dylib is located.
chilkat = assert(package.loadlib("./chilkat.dll", "luaopen_chilkat"))()
print(chilkat._VERSION)
local success = false
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local imap = chilkat.newImap{}
-- Connect to an IMAP server.
-- Use TLS
imap:setSsl(true)
imap:setPort(993)
success = imap:Connect("MY-IMAP-DOMAIN")
if success == false then
print(imap:LastErrorText())
end
-- Login
success = imap:Login("MY-IMAP-LOGIN","MY-IMAP-PASSWORD")
if success == false then
print(imap:LastErrorText())
end
local refName = ""
-- refName is usually set to an empty string.
-- A non-empty reference name argument is the name of a mailbox or a level of
-- mailbox hierarchy, and indicates the context in which the mailbox
-- name is interpreted.
-- Select all mailboxes matching this pattern:
local wildcardedMailbox = "*"
local subscribed = false
local mboxes = chilkat.newMailboxes{}
success = imap:MbxList(subscribed,refName,wildcardedMailbox,mboxes)
if success == false then
print(imap:LastErrorText())
end
local i = 0
while i < mboxes:Count() do
print(mboxes:GetName(i))
i = i + 1
end
-- Sample output looks like this:
-- INBOX.vendors.shareit
-- INBOX.oldSupport
-- INBOX.vendors.paypal
-- INBOX.sales
-- INBOX.lists
-- INBOX.Drafts
-- INBOX.vendors.dell
-- INBOX.Trash
-- INBOX.invoiceRequests
-- INBOX.purchases
-- INBOX.vendors.inMotion
-- INBOX.oldEmail
-- INBOX.vendors
-- INBOX.lists.python
-- INBOX.vendors.myhosting
-- INBOX.Templates
-- INBOX.friends
-- INBOX.bounceSamples
-- INBOX.lists.ruby
-- INBOX.vendors.peer1
-- INBOX.Sent
-- INBOX.Junk
-- INBOX
-- Disconnect from the IMAP server.
success = imap:Disconnect()