PureBasic
PureBasic
Delete Individual Emails from POP3 Mailbox
Demonstrates how to delete individual emails from a POP3 mailbox.Chilkat PureBasic Downloads
IncludeFile "CkEmailBundle.pb"
IncludeFile "CkEmail.pb"
IncludeFile "CkMailMan.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, "myLogin")
CkMailMan::setCkPopPassword(mailman, "myPassword")
; Set the ImmediateDelete property = 0
; 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.
CkMailMan::setCkImmediateDelete(mailman, 0)
; Download email headers.
bundle.i = CkEmailBundle::ckCreate()
If bundle.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
keepOnServer.i = 1
headersOnly.i = 1
numBodyLines.i = 1
success = CkMailMan::ckFetchAll(mailman,keepOnServer,headersOnly,numBodyLines,bundle)
If success = 0
Debug CkMailMan::ckLastErrorText(mailman)
CkMailMan::ckDispose(mailman)
CkEmailBundle::ckDispose(bundle)
ProcedureReturn
EndIf
email.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
i.i = 0
While i < CkEmailBundle::ckMessageCount(bundle)
CkEmailBundle::ckEmailAt(bundle,i,email)
Debug "From: " + CkEmail::ckFrom(email)
Debug "Subject: " + CkEmail::ckSubject(email)
; If you decide the email is to be deleted, call DeleteEmail.
; This marks the email for deletion on the POP3 server.
success = CkMailMan::ckDeleteEmail(mailman,email)
If success = 0
Debug CkMailMan::ckLastErrorText(mailman)
CkMailMan::ckDispose(mailman)
CkEmailBundle::ckDispose(bundle)
CkEmail::ckDispose(email)
ProcedureReturn
EndIf
i = i + 1
Wend
; Make sure the POP3 session is ended to finalize the deletes.
success = CkMailMan::ckPop3EndSession(mailman)
If success = 0
Debug CkMailMan::ckLastErrorText(mailman)
CkMailMan::ckDispose(mailman)
CkEmailBundle::ckDispose(bundle)
CkEmail::ckDispose(email)
ProcedureReturn
EndIf
Debug "Success!"
CkMailMan::ckDispose(mailman)
CkEmailBundle::ckDispose(bundle)
CkEmail::ckDispose(email)
ProcedureReturn
EndProcedure