Sample code for 30+ languages & platforms
AutoIt

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