Deleting old mail in Mail.app

One of the few things I miss about Outlook, having made the move to OS X and Apple Mail, is the ability on a folder to set it to archive or delete old (for a given value of old) mail at regular intervals. Seeing as I subscribe to a fairly significant number of mailing lists on various subjects, I collect a fair few mails over time. Thing is, I don’t necessarily want to keep them forever.

For example, I have 7500-odd messages for CF-Talk since some time in December. I really only want to maintain the most recent two weeks’ worth to keep up with what’s going on the the CF-Talk world. For anything older, I can go to the web-based archives at House of Fusion.

Is there some way in Mail, or some add-on which exists to let me do this automatically? I specifically don’t want to archive the mails. I want them deleted.

Let me know.

5 Replies to “Deleting old mail in Mail.app”

  1. I have my Trash folder set to automatically delete mail older than one month. I delete mail I don’t want to keep and so it hangs around for a month before actually being removed. Would that help?

    Otherwise you could create an AppleScript that deleted old mail and arrange for it to be executed on a schedule (don’t ask me how – go look it up!).

  2. Sean, of course I could script it (if I could find the time…). But I’m using the “somebody must have done it before” concept.

    My Trash gets killed 7 days after being deleted, so I’m already onto that. I have rules to sort my mail to many folders (maybe they should be Smart Folders… I don’t understand Smart Folders), so I want something that will trawl the folders from time to time and just erase anything I don’t want anymore, and maybe archive that which I do want to keep.

  3. Set up either a mail rule or smart folder (these are like always active filter rules) where:

    *Date received* — *is exactly* — n *days/weeks/months/years* ago

    If a filter, under “Perform the following actions” select “delete message” and save as the first listed rule. Then run the filter on your mail (Apply rules).

    If you made a smart folder, select the contents and hit delete. Every day the smart folder will grow with new mail that is older than the time period you set. Just open it once a week, select all and delete.

  4. Instead of

    *Date received* — *is exactly* — n *days/weeks/months/years* ago

    how about

    *Date received* — *is not in the last* — n *days/weeks/months/years* ago

Leave a Reply