• Notice regarding image hosts and attachments. See here.

Google App Script help

Soldato
Joined
18 Oct 2002
Posts
6,520
Location
N.Devon
Could anyone help me in changing the below script so that it purges emails after a set amount of hours instead of the days like it is now?

Code:
function purgeGmail() {

// The name of the Gmail Label that is to be autopurged?
var GMAIL_LABEL = "delete me";    
 
// Purge messages automatically after how many days?
var PURGE_AFTER = "1";
 

  
  var age = new Date();  
  age.setDate(age.getDate() - PURGE_AFTER);    
  
  var purge  = Utilities.formatDate(age, Session.getScriptTimeZone(), "yyyy-MM-dd");
  var search = "label:" + GMAIL_LABEL + " before:" + purge;
 
  // This will create a simple Gmail search 
  // query like label:Newsletters before:10/12/2012
  
  try {
    
    // We are processing 100 messages in a batch to prevent script errors.
    // Else it may throw Exceed Maximum Execution Time exception in Apps Script
 
    var threads = GmailApp.search(search, 0, 100);
    
 
    // For large batches, create another time-based trigger that will
    // activate the auto-purge process after 'n' minutes.
 
    if (threads.length == 100) {
      ScriptApp.newTrigger("purgeGmail")
               .timeBased()
               .at(new Date((new Date()).getTime() + 1000*60*10))
               .create();
    }
 
    // An email thread may have multiple messages and the timestamp of 
    // individual messages can be different.
    
    for (var i=0; i<threads.length; i++) {
      var messages = GmailApp.getMessagesForThread(threads[i]);
      for (var j=0; j<messages.length; j++) {
        var email = messages[j];       
        if (email.getDate() < age) {
          email.moveToTrash();
        }
      }
    }
    
  // If the script fails for some reason or catches an exception, 
  // it will simply defer auto-purge until the next day.
  } catch (e) {}
  
}
 
Back
Top Bottom