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

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