Lianja
Lianja
IMAP Delete Old Email (before a specified date)
See more IMAP Examples
Demonstrates how to delete email older than a particular date.Chilkat Lianja Downloads
llSuccess = .F.
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loImap = createobject("CkImap")
// Connect to an IMAP server.
// Use TLS
loImap.Ssl = .T.
loImap.Port = 993
// Use your IMAP server domain. This example
llSuccess = loImap.Connect("imap.example.com")
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
return
endif
// Login
llSuccess = loImap.Login("myLogin","myPassword")
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
return
endif
// Select an IMAP mailbox
llSuccess = loImap.SelectMailbox("Inbox")
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
return
endif
// Get message ID's for emails older than 1/1/2025
llFetchUids = .T.
loMessageSet = createobject("CkMessageSet")
llSuccess = loImap.QueryMbx("SENTBEFORE 01-Jan-2025",llFetchUids,loMessageSet)
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
release loMessageSet
return
endif
// If desired, we can examine the Subject of each email to be deleted..
loEmail = createobject("CkEmail")
i = 0
lnCount = loMessageSet.Count
llHeaderOnly = .T.
do while i < lnCount
llSuccess = loImap.FetchEmail(llHeaderOnly,loMessageSet.GetId(i),.T.,loEmail)
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
release loMessageSet
release loEmail
return
endif
? loEmail.LocalDateStr
? loEmail.Subject
i = i + 1
enddo
// Set the Deleted flag for each message:
llSuccess = loImap.SetFlags(loMessageSet,"Deleted",1)
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
release loMessageSet
release loEmail
return
endif
// Expunge and close the mailbox.
llSuccess = loImap.ExpungeAndClose()
if (llSuccess = .F.) then
? loImap.LastErrorText
release loImap
release loMessageSet
release loEmail
return
endif
// Disconnect from the IMAP server.
llSuccess = loImap.Disconnect()
release loImap
release loMessageSet
release loEmail