Created
May 4, 2017 11:43
-
-
Save aksswami/9058c6f59c2dbd143a55c3d06f1f12bf to your computer and use it in GitHub Desktop.
This Google App script parse gmail messages with specific label and put them a spreadsheet in your drive. I am using Gmail filter to put label to these message and remove this label after parsing to only parse new message on every turn.
This file contains 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 searchMessageWithLabel() { | |
var labelName = "My Label"; | |
var response = GmailApp.search("label:" + labelName); | |
var label = GmailApp.getUserLabelByName(labelName); | |
if (response.length == 0) { | |
Logger.log("No messages available."); | |
} else { | |
Logger.log("Messages"); | |
for(var i = 0; i < response.length; i++) { | |
var messages = response[i].getMessages(); | |
var firstMessage = messages[0]; | |
Logger.log("%s - %s", i, firstMessage.getFrom()); | |
sendDataToSpreadSheet(firstMessage.getFrom(), firstMessage.getDate(), firstMessage.getSubject(), firstMessage.getPlainBody()); | |
response[i].removeLabel(label).refresh(); | |
} | |
} | |
} | |
function sendDataToSpreadSheet(from, date, subject, message) { | |
var spreadSheetName = "My Sheet" | |
var sheet | |
var files = DriveApp.getFilesByName(spreadSheetName); | |
if (files.hasNext()) { | |
var spreadsheets = SpreadsheetApp.open(files.next()); | |
sheet = spreadsheets.getSheets()[0]; | |
} else { | |
sheet = SpreadsheetApp.create(spreadSheetName); | |
} | |
sheet.appendRow([from, date, subject, message]); | |
SpreadsheetApp.flush(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Filter for gmail to put labels to specific messages.