Monday, February 25, 2013

Gmail To Auto-Delete Emails Older Than A Set Number Days


A few days ago, we reviewed Mailstrom, an amazing web service that helps you clean your messy inbox. It’s an amazing service that can help tame even the wildest inboxes and it’s worked great for us. Once your inbox is clean though, you might want to keep it clean. The simplest way to do that would be to read your email regularly, archive the messages you want to keep and delete the useless ones. Of course, if it were really that simple, we wouldn’t have messy inboxes to begin with. If you’re often unable to remove read messages or unimportant ones from your inbox, you can use the following Google Script to automate it for you.
To use this Google Script, you need to first filter out the messages that you are mostly unable to read (and those that are generally useless for you). If you’ve never created a filter before, here’s how: click the cog wheel icon at the top-right corner of Gmail’s web interface and select Settings. Here you will find a lot of tabs. Go to the Filters tab and click the ‘Create a new filter’ link at the bottom. The search bar will expand with fields for the filters you can apply.
We created a filter for email addresses (From, To). You can create a similar filter for the Subject too if you like. Label your filter “delete me” and apply it to all existing messages.
Next, go to Google Scripts and create a blank project. Paste the following script in the new file and save/run it from the Run menu.
function cleanUp() {  
var delayDays = 2 // Enter # of days before messages are moved to trash   
var maxDate = new Date(); 
maxDate.setDate(maxDate.getDate()-delayDays);    
var label = GmailApp.getUserLabelByName("delete me");  
var threads = label.getThreads();  
for (var i = 0; i < threads.length; i++) {  
  if (threads[i].getLastMessageDate()<maxDate)
  {  
    threads[i].moveToTrash();
  } 
} 
}
Next, you need to set triggers for this script, i.e., how often it should run in a day. Go to Resources >Current project’s triggers and set it to run either on a per-minute, hourly, or daily basis. Now choose how often within the selected interval the script should run. We set it to run every other minute, which is more frequent than the regular user’s requirement. You can set it to run every 12 or 24 hours to make sure the messages are sent to Trash everyday.
script triggers
That’s about it. Run the script and you will see all emails with the “delete me” label have been moved to Trash. You can change how long an email stay in your inbox before this script sends it to Trash by editing the following this line in the script:
var delayDays = 2 // Enter # of days before messages are moved to trash
Replace the 2 with a higher number or even with 0 so that all emails with the “delete me” label are sent to Trash within the current day.
[via Lifehacker]

No comments:

Post a Comment