Sample code for 30+ languages & platforms
AutoIt

Subscribe to Mailboxes and List Subscribed Mailboxes

See more IMAP Examples

Demonstrates how to list subscribed mailboxes, and unsubscribe/subscribe to a mailbox.

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("imap.example.com")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

; Login
$bSuccess = $oImap.Login("myLogin","myPassword")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

; First examine the already subscribed mailboxes.
Local $sRefName = ""
Local $sWildcardedMailbox = "*"
Local $bSubscribed = True

$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
ConsoleWrite("----" & @CRLF)

; 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".
$bSuccess = $oImap.Unsubscribe("INBOX/misc/solutions")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

; Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
$bSuccess = $oImap.MbxList($bSubscribed,"","INBOX/misc*",$oMboxes)
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

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

; Re-subscribe to "INBOX/misc/solutions".
$bSuccess = $oImap.Subscribe("INBOX/misc/solutions")
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

; Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
$bSuccess = $oImap.MbxList($bSubscribed,"","INBOX/misc*",$oMboxes)
If ($bSuccess = False) Then
    ConsoleWrite($oImap.LastErrorText & @CRLF)
    Exit
EndIf

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

; Disconnect from the IMAP server.
$bSuccess = $oImap.Disconnect()