Last active
July 12, 2018 09:37
Star
You must be signed in to star a gist
Google Apps Script: given a regular email (e.g. backup results), archive old copies
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
// Configuration data | |
// Each config should have the following keys: | |
// * age_min: maps to 'older_than:' in gmail query terms | |
// * age_max: maps to 'newer_than:' in gmail query terms | |
// * query: freeform gmail query terms to match against | |
// | |
// The age_min/age_max values don't need to exist, given the freeform query value, | |
// but age_min forces you to think about how frequent the emails are, and age_max | |
// forces you to not search for every single email tha matches the query | |
// | |
// TODO: | |
// * Add a per-config flag that skips the archiving if there's only one matching thread (so the most recent matching email always stays in Inbox) | |
var configs = [ | |
{ age_min:"14d", age_max:"90d", query:"subject:(Benedict's Newsletter)" }, | |
{ age_min:"7d", age_max:"30d", query:"from:hello@visualping.io subject:gnubert" }, | |
{ age_min:"1d", age_max:"7d", query:"subject:(Nightly clone to Thunderbay4 Successfully)" }, | |
{ age_min:"1d", age_max:"7d", query:"from:Amazon subject:(Arriving today)" } | |
]; | |
function processInbox() { | |
for (var config_key in configs) { | |
var config = configs[config_key]; | |
Logger.log("Processing query: " + config["query"]); | |
var threads = GmailApp.search("in:inbox " + config["query"] + " newer_than:" + config["age_max"] + " older_than:" + config["age_min"]); | |
for (var thread_key in threads) { | |
var thread = threads[thread_key]; | |
Logger.log(" Archiving: " + thread.getFirstMessageSubject()); | |
thread.markRead(); | |
thread.moveToArchive(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment