Sample code for 30+ languages & platforms
Swift Requires Chilkat v11.0.0+

Delete Individual Emails from POP3 Mailbox

Demonstrates how to delete individual emails from a POP3 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.

    //  The mailman object is used for receiving (POP3) 
    //  and sending (SMTP) email.
    let mailman = CkoMailMan()!

    //  Set the POP3 server's hostname
    mailman.mailHost = "pop.example.com"

    //  Set the POP3 login/password.
    mailman.popUsername = "myLogin"
    mailman.popPassword = "myPassword"

    //  Set the ImmediateDelete property = false
    //  When the DeleteEmail method is called, the POP3 session
    //  will remain open and the emails will be deleted all at once
    //  when the session closes.
    mailman.immediateDelete = false

    //  Download email headers.  
    let bundle = CkoEmailBundle()!
    var keepOnServer: Bool = true
    var headersOnly: Bool = true
    var numBodyLines: Int = 1
    success = mailman.fetchAll(keepOnServer: keepOnServer, headersOnly: headersOnly, numBodyLines: numBodyLines, bundle: bundle)
    if success == false {
        print("\(mailman.lastErrorText!)")
        return
    }

    let email = CkoEmail()!
    var i: Int = 0
    while i < bundle.messageCount.intValue {
        bundle.email(at: i, email: email)

        print("From: \(email.from!)")
        print("Subject: \(email.subject!)")

        //  If you decide the email is to be deleted, call DeleteEmail.
        //  This marks the email for deletion on the POP3 server.
        success = mailman.deleteEmail(email: email)
        if success == false {
            print("\(mailman.lastErrorText!)")
            return
        }

        i = i + 1
    }

    //  Make sure the POP3 session is ended to finalize the deletes.
    success = mailman.pop3EndSession()
    if success == false {
        print("\(mailman.lastErrorText!)")
        return
    }

    print("Success!")

}