Sample code for 30+ languages & platforms
PureBasic

Create Email Folder (sub-Mailbox)

How to create a new email folder (sub-mailbox). (In GMail, folders are called "labels". This example would create a new "label" in GMail.)

Chilkat PureBasic Downloads

PureBasic
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

    CkImap::setCkSsl(imap, 1)
    CkImap::setCkPort(imap, 993)

    ; Connect to an IMAP server.
    success = CkImap::ckConnect(imap,"imap.gmail.com")
    If success <> 1
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    ; Login
    success = CkImap::ckLogin(imap,"myLogin","myPassword")
    If success <> 1
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    ; Create the new email folder (sub-mailbox) on the IMAP server.
    ; If no folder path is provided, the new folder is a sub-mailbox of Inbox.
    success = CkImap::ckCreateMailbox(imap,"newFolder")
    If success <> 1
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    ; (In GMail, folders are called "labels".  
    ; This example would create a new "label" in GMail.)

    ; Now create a sub-folder under "newFolder".
    ; Make sure to use the proper separator char for your IMAP server.
    ; The separator char used here is "/".   It is typically "/" or ".".
    ; The SeparatorChar property contains the separator char
    ; that should be used for the current IMAP session.
    success = CkImap::ckCreateMailbox(imap,"newFolder/subFolder_A")
    If success <> 1
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkImap::ckDispose(imap)


    ProcedureReturn
EndProcedure