Sample code for 30+ languages & platforms
Visual FoxPro 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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loImap
LOCAL lcRefName
LOCAL lcWildcardedMailbox
LOCAL lnSubscribed
LOCAL loMboxes
LOCAL i

lnSuccess = 0

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

loImap = CreateObject('Chilkat.Imap')

*  Connect to an IMAP server.
*  Use TLS
loImap.Ssl = 1
loImap.Port = 993
lnSuccess = loImap.Connect("imap.example.com")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    CANCEL
ENDIF

*  Login
lnSuccess = loImap.Login("myLogin","myPassword")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    CANCEL
ENDIF

*  First examine the already subscribed mailboxes.
lcRefName = ""
lcWildcardedMailbox = "*"
lnSubscribed = 1

loMboxes = CreateObject('Chilkat.Mailboxes')
lnSuccess = loImap.MbxList(lnSubscribed,lcRefName,lcWildcardedMailbox,loMboxes)
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMboxes
    CANCEL
ENDIF

i = 0
DO WHILE i < loMboxes.Count
    ? loMboxes.GetName(i)
    i = i + 1
ENDDO
? "----"

*  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".
lnSuccess = loImap.Unsubscribe("INBOX/misc/solutions")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMboxes
    CANCEL
ENDIF

*  Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
lnSuccess = loImap.MbxList(lnSubscribed,"","INBOX/misc*",loMboxes)
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMboxes
    CANCEL
ENDIF

i = 0
DO WHILE i < loMboxes.Count
    ? loMboxes.GetName(i)
    i = i + 1
ENDDO
? "----"

*  Re-subscribe to "INBOX/misc/solutions".
lnSuccess = loImap.Subscribe("INBOX/misc/solutions")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMboxes
    CANCEL
ENDIF

*  Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
lnSuccess = loImap.MbxList(lnSubscribed,"","INBOX/misc*",loMboxes)
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMboxes
    CANCEL
ENDIF

i = 0
DO WHILE i < loMboxes.Count
    ? loMboxes.GetName(i)
    i = i + 1
ENDDO
? "----"

*  Disconnect from the IMAP server.
lnSuccess = loImap.Disconnect()

RELEASE loImap
RELEASE loMboxes