Created
September 4, 2022 10:10
-
-
Save logic2design/2a8042cb11f9b179203d10222034b96a to your computer and use it in GitHub Desktop.
This routine will move Messages from one folder to another if the Message is older than a nominated amount of days
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################## | |
# Title: Purge Aged Mail | |
############################################## | |
# Iain Dunn | |
# Logic2Design | |
# www.logic2design.com | |
# [email protected] | |
# Last update: 4 September 2022 | |
# Version: 1 | |
# Contributors and sources | |
# Jacques Rioux - https://discussions.apple.com/thread/7476557 | |
############################################## | |
# Configuration | |
############################################## | |
set includeList to {"Promos", "Home", "News", "Test"} | |
set showMailboxesProgress to true -- display the "Processing" box displayed for each mailbox | |
set destFolderName to "Trash" -- mailbox to move messages to | |
set mAge to 14 -- mail older than this in days will be moved | |
############################################## | |
# Code | |
############################################## | |
tell application "Mail" | |
set everyAccount to every account | |
repeat with eachAccount in everyAccount | |
set everyMailbox to every mailbox of eachAccount | |
set accountName to the name of eachAccount | |
repeat with theMailbox in everyMailbox | |
set currentMailbox to theMailbox | |
set mailboxName to the name of currentMailbox as rich text | |
if mailboxName is in includeList then | |
if showMailboxesProgress then | |
display dialog "Processing aged messages in folder " & mailboxName & " in account " & accountName | |
end if | |
set mSource to mailbox mailboxName of account accountName | |
set mDestination to mailbox destFolderName of account accountName | |
my getSubMailboxes_moveMSGs(mSource, mDestination, mAge) | |
end if | |
end repeat | |
end repeat | |
end tell | |
############################################## | |
# Functions | |
############################################## | |
on getSubMailboxes_moveMSGs(s, d, a) | |
set processAge to (current date) - (a * days) -- days old the message must be before moved or deleted | |
tell application "Mail" | |
set messagesToDelete to messages of s whose date received ≤ processAge | |
repeat with aMessage in messagesToDelete | |
move aMessage to d | |
end repeat | |
repeat with thisSubMBox in (get mailboxes of s) | |
my getSubMailboxes_moveMSGs(thisSubMBox, d, a) | |
end repeat | |
end tell | |
end getSubMailboxes_moveMSGs |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment