Skip to content

Instantly share code, notes, and snippets.

@boly38
Created July 30, 2015 12:06
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 boly38/9222706f49f4c3939f28 to your computer and use it in GitHub Desktop.
Save boly38/9222706f49f4c3939f28 to your computer and use it in GitHub Desktop.
Google appscript to delete mail older thant N days and having a given label
function deleteOldMailFromTag() {
// push this function onto https://script.google.com/
// to make a dry run, set sendReport to true, and removeMail to false.
//
// common config
var sendReport = true; // send script execution log by email
var removeMail = false; // set it to true only after strong tests :)
var tag = 'myLabel';
var minAge = '30d';
// internal config
var myFilter = 'label:' + tag + ' older_than:'+minAge;
var maxMail = 100;
var reportRecipient = 'monemail_pour_le_rapport@yoyo.fr';
var reportTitle = 'GGScript deleteOldMailFromTag report';
// business process
Logger.log("deleteOldMailFromTag : sendReport=" + sendReport + " removeMail=" + removeMail + " filter:" + myFilter);
// get back mail from my gmail (authorization required the first time)
var threads = GmailApp.search(myFilter, 0, maxMail);
// for each thread (mail group)
for (var i=0; i < threads.length ; i++ ) {
var t = threads[i];
// append to the logger a line per thread
Logger.log("DELETE >>> " + t.getFirstMessageSubject());
// remove it if removeMail == true
if (removeMail) {
t.moveToTrash();
}
}
// send a report by email with script logs
if (sendReport) {
var reportBody = Logger.getLog();
GmailApp.sendEmail(reportRecipient, reportTitle, reportBody);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment