Created
July 30, 2015 12:06
-
-
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
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
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 = '[email protected]'; | |
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