Skip to content

Instantly share code, notes, and snippets.

@arnoschutijzer
Last active November 19, 2020 17:03
Show Gist options
  • Save arnoschutijzer/a4aaa57fa53941057fbbb45f16c691fa to your computer and use it in GitHub Desktop.
Save arnoschutijzer/a4aaa57fa53941057fbbb45f16c691fa to your computer and use it in GitHub Desktop.
extract email addresses from inbox mails in gmail
function sender_list() {
var inbox_threads = GmailApp.getInboxThreads();
var sender_array = new Array();
for (var i = 0; i < inbox_threads.length; i++) {
var message = inbox_threads[i].getMessages();
for (var x = 0; x < message.length; x++) {
var email_address = retrieve_sender_from_message(message[x]);
console.log(email_address);
if (sender_array.indexOf(email_address) === -1)
sender_array.push(email_address);
}
}
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('sheet1');
sheet.clear();
sheet.appendRow(['Email Addresses']);
sender_array.sort();
var row = sheet.getLastRow() + 1;
for (var y = 0; y < sender_array.length; y++) {
sheet.getRange(row, 1).setValue(sender_array[y]);
row++;
}
}
function retrieve_sender_from_message(message) {
return message.getReplyTo() ? retrieve_email_from_sender(message.getReplyTo()) : retrieve_email_from_sender(message.getFrom());
}
// sender can be of the form `Name <name@provider.tld>` or `name@provider.tld`
function retrieve_email_from_sender(sender) {
var opening_bracket = sender.indexOf('<');
var closing_bracket = sender.indexOf('>');
// this will likely fail if there are any users with a `<` or `>` in their name...
if (closing_bracket !== 1 && opening_bracket !== 1) {
return sender.substring(opening_bracket +1, closing_bracket);
}
return sender;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment