Lua Requires Chilkat v11.0.0+
Lua
Subscribe to Mailboxes and List Subscribed Mailboxes
See more IMAP Examples
Demonstrates how to list subscribed mailboxes, and unsubscribe/subscribe to a mailbox.Chilkat Lua Downloads
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("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
-- First examine the already subscribed mailboxes.
local refName = ""
local wildcardedMailbox = "*"
local subscribed = true
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
print("----")
-- Sample output.
-- INBOX
-- INBOX/recent
-- INBOX/misc
-- INBOX/misc/solutions
-- ...
-- Outbox
-- Deleted Items
-- Sent Items
-- Drafts
-- Junk E-mail
-- Trash
-- Sent
-- Templates
-- Let's unsubscribe to "INBOX/misc/solutions".
success = imap:unsubscribe("INBOX/misc/solutions")
if not success then
print(imap.last_error_text)
return
end
-- Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
success = imap:mbx_list(subscribed, "", "INBOX/misc*", mboxes)
if not success then
print(imap.last_error_text)
return
end
i = 0
while i < mboxes.count do
print(mboxes:get_name(i))
i = i + 1
end
print("----")
-- Re-subscribe to "INBOX/misc/solutions".
success = imap:subscribe("INBOX/misc/solutions")
if not success then
print(imap.last_error_text)
return
end
-- Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
success = imap:mbx_list(subscribed, "", "INBOX/misc*", mboxes)
if not success then
print(imap.last_error_text)
return
end
i = 0
while i < mboxes.count do
print(mboxes:get_name(i))
i = i + 1
end
print("----")
-- Disconnect from the IMAP server.
success = imap:disconnect()