Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save michaelmartinezcampos/5c89cb9d0fa1d121804897112f3e6034 to your computer and use it in GitHub Desktop.
Save michaelmartinezcampos/5c89cb9d0fa1d121804897112f3e6034 to your computer and use it in GitHub Desktop.
Extract Email Text from Google Sheet using App Script
var ui = SpreadsheetApp.getUi();
function onOpen(e){
ui.createMenu("Gmail Manager").addItem("Get Emails by Label", "getGmailEmails").addToUi();
}
function getGmailEmails(){
var input = ui.prompt('Label Name', 'Enter the label name that is assigned to your emails:', Browser.Buttons.OK_CANCEL);
if (input.getSelectedButton() == ui.Button.CANCEL){
return;
}
var label = GmailApp.getUserLabelByName(input.getResponseText().trim());
var threads = label.getThreads();
for(var i = threads.length - 1; i >=0; i--){
var messages = threads[i].getMessages();
for (var j = 0; j <messages.length; j++){
var message = messages[j];
if (message){
extractDetails(message);
}
}
}
}
function extractDetails(message){
var emailData = {
body: "Null",
fullName: "Null",
emailAddr: "Null"
}
var emailKeywords = {
fullName: "Name:",
emailAddr: "Email:"
}
emailData.body = message.getPlainBody();
var regExp;
regExp = new RegExp("(?<=" + emailKeywords.fullName + ").*");
emailData.fullName = emailData.body.match(regExp).toString().trim();
regExp = new RegExp("(?<=" + emailKeywords.emailAddr + ").*");
emailData.emailAddr = emailData.body.match(regExp).toString().trim();
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var emailDataArr = [];
emailDataArr.push(emailData.fullName);
emailDataArr.push(emailData.emailAddr);
activeSheet.appendRow(emailDataArr);
}
@michaelmartinezcampos
Copy link
Author

This was modified to:

  • extract fields named 'Name:' and 'Email:' only.

  • search for any existing messages rather than unread messages [line 21]

  • not remove the message's label after parsing

  • not mark the message read after parsing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment