Sample code for 30+ languages & platforms
PureBasic

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