Created
August 16, 2016 21:02
-
-
Save nuex/4341800da35075630f03f03c358dcf06 to your computer and use it in GitHub Desktop.
function for converting labelled gmail emails to a spreadsheet
This file contains hidden or 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 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