Sample code for 30+ languages & platforms
PureBasic

Read All Email from POP3 Inbox by Message Numbers

Demonstrates how to read all of the email from a POP3 inbox by fetching each email by it's message number.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkEmail.pb"
IncludeFile "CkMailMan.pb"

Procedure ChilkatExample()

    success.i = 0

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

    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, "myLogin")
    CkMailMan::setCkPopPassword(mailman, "myPassword")

    ; Get the number of messages in the mailbox.
    numMessages.i = CkMailMan::ckGetMailboxCount(mailman)

    ; Message numbers are specific to a POP3 session. 
    ; If a maildrop (i.e. inbox)  contains 10 messages, 
    ; the message numbers will be 1, 2, 3, ... 10. 
    ; If message number 1 is deleted and a new POP3 session 
    ; is established, there will be 9 messages numbered 1, 2, 3, ... 9. 

    i.i = 1

    email.i = CkEmail::ckCreate()
    If email.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    While i <= numMessages
        ; Fetch by the message number (not by the UIDL)
        success = CkMailMan::ckFetchOne(mailman,0,0,i,email)
        If success = 0
            Debug CkMailMan::ckLastErrorText(mailman)
            CkMailMan::ckDispose(mailman)
            CkEmail::ckDispose(email)
            ProcedureReturn
        EndIf

        Debug CkEmail::ckFrom(email) + ": " + CkEmail::ckSubject(email) + Chr(10)

        i = i + 1
    Wend


    CkMailMan::ckDispose(mailman)
    CkEmail::ckDispose(email)


    ProcedureReturn
EndProcedure