PureBasic
PureBasic
Subscribe to Mailboxes and List Subscribed Mailboxes
See more IMAP Examples
Demonstrates how to list subscribed mailboxes, and unsubscribe/subscribe to a mailbox.Chilkat PureBasic Downloads
IncludeFile "CkMailboxes.pb"
IncludeFile "CkImap.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
imap.i = CkImap::ckCreate()
If imap.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Connect to an IMAP server.
; Use TLS
CkImap::setCkSsl(imap, 1)
CkImap::setCkPort(imap, 993)
success = CkImap::ckConnect(imap,"imap.example.com")
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
ProcedureReturn
EndIf
; Login
success = CkImap::ckLogin(imap,"myLogin","myPassword")
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
ProcedureReturn
EndIf
; First examine the already subscribed mailboxes.
refName.s = ""
wildcardedMailbox.s = "*"
subscribed.i = 1
mboxes.i = CkMailboxes::ckCreate()
If mboxes.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkImap::ckMbxList(imap,subscribed,refName,wildcardedMailbox,mboxes)
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndIf
i.i = 0
While i < CkMailboxes::ckCount(mboxes)
Debug CkMailboxes::ckGetName(mboxes,i)
i = i + 1
Wend
Debug "----"
; 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 = CkImap::ckUnsubscribe(imap,"INBOX/misc/solutions")
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndIf
; Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
success = CkImap::ckMbxList(imap,subscribed,"","INBOX/misc*",mboxes)
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndIf
i = 0
While i < CkMailboxes::ckCount(mboxes)
Debug CkMailboxes::ckGetName(mboxes,i)
i = i + 1
Wend
Debug "----"
; Re-subscribe to "INBOX/misc/solutions".
success = CkImap::ckSubscribe(imap,"INBOX/misc/solutions")
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndIf
; Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
success = CkImap::ckMbxList(imap,subscribed,"","INBOX/misc*",mboxes)
If success = 0
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndIf
i = 0
While i < CkMailboxes::ckCount(mboxes)
Debug CkMailboxes::ckGetName(mboxes,i)
i = i + 1
Wend
Debug "----"
; Disconnect from the IMAP server.
success = CkImap::ckDisconnect(imap)
CkImap::ckDispose(imap)
CkMailboxes::ckDispose(mboxes)
ProcedureReturn
EndProcedure