Skip to content

Instantly share code, notes, and snippets.

@theaboutbox
Forked from gruber/gist:1063605
Created August 11, 2011 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theaboutbox/1139677 to your computer and use it in GitHub Desktop.
Save theaboutbox/1139677 to your computer and use it in GitHub Desktop.
Simple Inbox Archiving Script for Apple Mail
-- See article here: http://daringfireball.net/2007/07/simple_inbox_sweeper
-- Minor modification to archive mail in sub-folders for each year
-- e.g. Archives/2011 for all mail archived in 2011
-- This mimics Thunderbird's "Archive" functionality
-- The following should be one long line:
set _description to "All unflagged, read messages in each IMAP account inbox will be moved to the “Archive” mailbox corresponding to that account. This action is not undoable."
tell application "Mail"
display alert "Archive read messages from IMAP inboxes?" buttons {"Cancel", "Archive"} cancel button 1 message _description
repeat with _acct in imap accounts
set _acct_name to name of _acct
set _inbox to _acct's mailbox "INBOX"
set _year to year of (current date)
try
set _mailbox_name to "Archives/" & _year
set _archive_box to _acct's mailbox _mailbox_name
on error
display alert "No “" & _mailbox_name & "” mailbox found for account “" & _acct_name & "”."
return -- Stop the script
end try
-- Begin update for OS X 10.7.0
set _msgs_to_move to (a reference to ¬
(every message of _inbox ¬
whose flagged status is false and read status is true))
set _msg_list to contents of _msgs_to_move
if (_msg_list's length > 0) then
move _msgs_to_move to _archive_box
end if
-- End update for 10.7.0
end repeat
end tell
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment