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

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