Skip to content

Instantly share code, notes, and snippets.

@nuex
Created August 16, 2016 21:02
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 nuex/4341800da35075630f03f03c358dcf06 to your computer and use it in GitHub Desktop.
Save nuex/4341800da35075630f03f03c358dcf06 to your computer and use it in GitHub Desktop.
function for converting labelled gmail emails to a spreadsheet
function getEmails() {
// set spreadsheet and retrieve labels
var ss = SpreadsheetApp.getActiveSpreadsheet();
var name = "LABEL";
// create sheets and clear content
var label = GmailApp.getUserLabelByName(name);
var sh = ss.getSheetByName(label.getName()) ||
ss.insertSheet(label.getName(), ss.getSheets().length);
sh.clear();
// get all messages
var eMails = GmailApp.getMessagesForThreads(
GmailApp.search("label:" + label.getName()))
.reduce(function(a, b) {return a.concat(b);})
.map(function(eMails) {
return eMails.getFrom()
});
// sort and filter for unique entries
var aEmails = eMails.sort().filter(function(el,j,a)
{if(j==a.indexOf(el))return 1;return 0});
// create 2D-array
var aUnique = new Array();
for(var k in aEmails) {
aUnique.push([aEmails[k]]);
}
// add data to corresponding sheet
sh.getRange(1, 1, aUnique.length, 1).setValues(aUnique);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment