Skip to content

Instantly share code, notes, and snippets.

@tedsteinmann
Last active October 15, 2023 11:26
Show Gist options
  • Save tedsteinmann/d68d2a7908b87efb1c806e690e26b7dd to your computer and use it in GitHub Desktop.
Save tedsteinmann/d68d2a7908b87efb1c806e690e26b7dd to your computer and use it in GitHub Desktop.
Google Apps Script to autoforward based on convention.
/**
* script to automatically forward all mail under 'auto/forward/[recipient]
* author: tedsteinmann
*/
//setting primary inputs
var LABEL = 'auto/forward/';
function forwardMail(){
//get all labels under LABEL
var forwards = _getAutoForwards()
//loop over list of labels
for (var i = 0; i < forwards.length; i++) {
//Logger.log(forwards[i])
_forward(forwards[i])
}
}
function _getAutoForwards(){
var results = [];
var labels = GmailApp.getUserLabels();
for (var i = 0; i < labels.length; i++) {
var labelname = labels[i].getName().toString()
if(labelname.indexOf(LABEL) > -1) {
var list = labelname.split("/")
var forwardTo = list[list.length - 1]
Logger.log("Checking label: "+ forwardTo);
results.push(forwardTo)
}
}
return results;
}
function _forward(recipient) {
var label = LABEL + recipient
var threads = GmailApp.search('label:' + label);
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[0]
message.forward(recipient); // only the 1st message
Logger.log('Message subject:' + message.getSubject() + ' forwarded to ' + recipient); //logs MyLabel
threads[i].removeLabel(GmailApp.getUserLabelByName(label));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment