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

List IMAP Mailboxes

List the mailboxes available within an IMAP account.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example assumes the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oImap = ObjCreate("Chilkat.Imap")

;  Connect to an IMAP server.
;  Use TLS
$oImap.Ssl = True
$oImap.Port = 993
$bSuccess = $oImap.Connect("MY-IMAP-DOMAIN")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

;  Login
$bSuccess = $oImap.Login("MY-IMAP-LOGIN","MY-IMAP-PASSWORD")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

Local $sRefName = ""
;  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 $sWildcardedMailbox = "*"

Local $bSubscribed = False

$oMboxes = ObjCreate("Chilkat.Mailboxes")
$bSuccess = $oImap.MbxList($bSubscribed,$sRefName,$sWildcardedMailbox,$oMboxes)
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

Local $i = 0
While $i < $oMboxes.Count
    ConsoleWrite($oMboxes.GetName($i) & @CRLF)
    $i = $i + 1
Wend

;  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.
$bSuccess = $oImap.Disconnect()