Visual FoxPro
Visual FoxPro
IMAP Delete Old Email (before a specified date)
See more IMAP Examples
Demonstrates how to delete email older than a particular date.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loImap
LOCAL lnFetchUids
LOCAL loMessageSet
LOCAL loEmail
LOCAL i
LOCAL lnCount
LOCAL lnHeaderOnly
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loImap = CreateObject('Chilkat.Imap')
* Connect to an IMAP server.
* Use TLS
loImap.Ssl = 1
loImap.Port = 993
* Use your IMAP server domain. This example
lnSuccess = loImap.Connect("imap.example.com")
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
CANCEL
ENDIF
* Login
lnSuccess = loImap.Login("myLogin","myPassword")
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
CANCEL
ENDIF
* Select an IMAP mailbox
lnSuccess = loImap.SelectMailbox("Inbox")
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
CANCEL
ENDIF
* Get message ID's for emails older than 1/1/2025
lnFetchUids = 1
loMessageSet = CreateObject('Chilkat.MessageSet')
lnSuccess = loImap.QueryMbx("SENTBEFORE 01-Jan-2025",lnFetchUids,loMessageSet)
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loMessageSet
CANCEL
ENDIF
* If desired, we can examine the Subject of each email to be deleted..
loEmail = CreateObject('Chilkat.Email')
i = 0
lnCount = loMessageSet.Count
lnHeaderOnly = 1
DO WHILE i < lnCount
lnSuccess = loImap.FetchEmail(lnHeaderOnly,loMessageSet.GetId(i),1,loEmail)
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loMessageSet
RELEASE loEmail
CANCEL
ENDIF
? loEmail.LocalDateStr
? loEmail.Subject
i = i + 1
ENDDO
* Set the Deleted flag for each message:
lnSuccess = loImap.SetFlags(loMessageSet,"Deleted",1)
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loMessageSet
RELEASE loEmail
CANCEL
ENDIF
* Expunge and close the mailbox.
lnSuccess = loImap.ExpungeAndClose()
IF (lnSuccess = 0) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loMessageSet
RELEASE loEmail
CANCEL
ENDIF
* Disconnect from the IMAP server.
lnSuccess = loImap.Disconnect()
RELEASE loImap
RELEASE loMessageSet
RELEASE loEmail