Sample code for 30+ languages & platforms
Swift

Subscribe to Mailboxes and List Subscribed Mailboxes

See more IMAP Examples

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

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let imap = CkoImap()!

    // Connect to an IMAP server.
    // Use TLS
    imap.ssl = true
    imap.port = 993
    success = imap.connect(hostname: "imap.example.com")
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    // Login
    success = imap.login(login: "myLogin", password: "myPassword")
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    // First examine the already subscribed mailboxes.
    var refName: String? = ""
    var wildcardedMailbox: String? = "*"
    var subscribed: Bool = true

    let mboxes = CkoMailboxes()!
    success = imap.mbxList(subscribed: subscribed, reference: refName, mbxPattern: wildcardedMailbox, mboxes: mboxes)
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    var i: Int = 0
    while i < mboxes.count.intValue {
        print("\(mboxes.getName(index: i)!)")
        i = i + 1
    }

    print("----")

    // 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 = imap.unsubscribe(mailbox: "INBOX/misc/solutions")
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    // Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
    success = imap.mbxList(subscribed: subscribed, reference: "", mbxPattern: "INBOX/misc*", mboxes: mboxes)
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    i = 0
    while i < mboxes.count.intValue {
        print("\(mboxes.getName(index: i)!)")
        i = i + 1
    }

    print("----")

    // Re-subscribe to "INBOX/misc/solutions".
    success = imap.subscribe(mailbox: "INBOX/misc/solutions")
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    // Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
    success = imap.mbxList(subscribed: subscribed, reference: "", mbxPattern: "INBOX/misc*", mboxes: mboxes)
    if success == false {
        print("\(imap.lastErrorText!)")
        return
    }

    i = 0
    while i < mboxes.count.intValue {
        print("\(mboxes.getName(index: i)!)")
        i = i + 1
    }

    print("----")

    // Disconnect from the IMAP server.
    success = imap.disconnect()

}