Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.1.0+

Delete All Email in a POP3 Mailbox

Delete all email in a POP3 mailbox.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMailMan.pb"
IncludeFile "CkStringTable.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ;  The mailman object is used for receiving (POP3) 
    ;  and sending (SMTP) email.
    mailman.i = CkMailMan::ckCreate()
    If mailman.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ;  Set the POP3 server's hostname
    CkMailMan::setCkMailHost(mailman, "pop.example.com")

    ;  Set the POP3 login/password.
    CkMailMan::setCkPopUsername(mailman, "bob@example.com")
    CkMailMan::setCkPopPassword(mailman, "****")

    ;  Make sure the ImmediateDelete property is set (this is the default)
    ;  If ImmediateDelete is not set, messages marked for deletion
    ;  by the Delete* methods will not be deleted until the POP3
    ;  connection is closed by calling Pop3EndSession.
    CkMailMan::setCkImmediateDelete(mailman, 1)

    ;  First, get all the UIDLs.
    stUidls.i = CkStringTable::ckCreate()
    If stUidls.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkMailMan::ckFetchUidls(mailman,stUidls)
    If success = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        CkStringTable::ckDispose(stUidls)
        ProcedureReturn
    EndIf

    ;  Next, delete them all.
    success = CkMailMan::ckDeleteUidlSet(mailman,stUidls)
    If success = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        CkStringTable::ckDispose(stUidls)
        ProcedureReturn
    EndIf

    ;  We're done with the POP3 session, so it doesn't hurt to call this...
    success = CkMailMan::ckPop3EndSession(mailman)
    If success = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        CkStringTable::ckDispose(stUidls)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkMailMan::ckDispose(mailman)
    CkStringTable::ckDispose(stUidls)


    ProcedureReturn
EndProcedure