Lua Requires Chilkat v11.0.0+
Lua
IMAP Delete Old Email (before a specified date)
See more IMAP Examples
Demonstrates how to delete email older than a particular date.Chilkat Lua Downloads
-- In the following call to loadlib, change the path (./chilkat.dll) to the relative or absolute directory where the chilkat.dll, chilkat.so, or chilkat.dylib is located.
chilkat = assert(package.loadlib("./chilkat.dll", "luaopen_chilkat"))()
print(chilkat._VERSION)
local success = false
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local imap = chilkat.newImap{}
-- Connect to an IMAP server.
-- Use TLS
imap:setSsl(true)
imap:setPort(993)
-- Use your IMAP server domain. This example
success = imap:Connect("imap.example.com")
if success == false then
print(imap:LastErrorText())
end
-- Login
success = imap:Login("myLogin","myPassword")
if success == false then
print(imap:LastErrorText())
end
-- Select an IMAP mailbox
success = imap:SelectMailbox("Inbox")
if success == false then
print(imap:LastErrorText())
end
-- Get message ID's for emails older than 1/1/2025
local fetchUids = true
local messageSet = chilkat.newMessageSet{}
success = imap:QueryMbx("SENTBEFORE 01-Jan-2025",fetchUids,messageSet)
if success == false then
print(imap:LastErrorText())
end
-- If desired, we can examine the Subject of each email to be deleted..
local email = chilkat.newEmail{}
local i = 0
local count = messageSet:Count()
local headerOnly = true
while i < count do
success = imap:FetchEmail(headerOnly,messageSet:GetId(i),true,email)
if success == false then
print(imap:LastErrorText())
end
print(email:LocalDateStr())
print(email:Subject())
i = i + 1
end
-- Set the Deleted flag for each message:
success = imap:SetFlags(messageSet,"Deleted",1)
if success == false then
print(imap:LastErrorText())
end
-- Expunge and close the mailbox.
success = imap:ExpungeAndClose()
if success == false then
print(imap:LastErrorText())
end
-- Disconnect from the IMAP server.
success = imap:Disconnect()