Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

List IMAP Mailboxes

List the mailboxes available within an IMAP account.

Chilkat Lua Downloads

Lua
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()

-- Connect to an IMAP server.
-- Use TLS
imap.ssl = true
imap.port = 993
local success = imap:connect("MY-IMAP-DOMAIN")
if not success then
    print(imap.last_error_text)
    return
end

-- Login
success = imap:login("MY-IMAP-LOGIN", "MY-IMAP-PASSWORD")
if not success then
    print(imap.last_error_text)
    return
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.Mailboxes.new()
success = imap:mbx_list(subscribed, refName, wildcardedMailbox, mboxes)
if not success then
    print(imap.last_error_text)
    return
end

local i = 0
while i < mboxes.count do
    print(mboxes:get_name(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()