Forked from moayadhani/ExtractSpecificTextFromEmail.txt
Last active
November 17, 2020 00:19
-
-
Save michaelmartinezcampos/5c89cb9d0fa1d121804897112f3e6034 to your computer and use it in GitHub Desktop.
Extract Email Text from Google Sheet using App Script
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
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); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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