Jakesch :
I have pieced together a few different scripts to get this to work but I cant seem to get the code to put the data in correctly.
Email Input:
*Status:*
*Date:* 03/31/2020
*WorkOrder:* 123456-1
*DMSShipDate:* 03/31/2020
*PONumber:* 8675309
*Company:* Test
Script
var ui = SpreadsheetApp.getUi();
function onOpen(e){
ui.createMenu("Import Email").addItem("Import Email", "getGmailEmails").addToUi();
}
function getGmailEmails(){
if (Session.getActiveUser().getEmail() != "[email protected]"){
Browser.msgBox("Please log in as [email protected]");
return;
}
var label = GmailApp.getUserLabelByName("ImportMe");
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];
extractDetails(message);
GmailApp.markMessageRead(message);
}
threads[i].removeLabel(label);
}
}
function extractDetails(message){
var bodyContents = message.getPlainBody();
var status = bodyContents.match(/\*Status:\*(.*) /);
var dateEntered = bodyContents.match(/\*Date:\*(.*) /);
var workOrder = bodyContents.match(/\*WorkOrder:\*(.*) /);
var dmsShipDate = bodyContents.match(/\*DMSShipDate:\*(.*) /);
var poNum = bodyContents.match(/\*PONumber:\*(.*) /);
var company = bodyContents.match(/\*Company:\*(.*) /);
var activeSheet = SpreadsheetApp.getActiveSheet();
activeSheet.appendRow([status, dateEntered, workOrder, dmsShipDate, poNum, company]);
}
Result:
I get the following in each column:
[Ljava.lang.Object;@488e1851, [Ljava.lang.Object;@5c588720, etc, etc
I have tried JSON.Stringify and toString() but nothing seems to be able to get the data into the column correctly.
TheMaster :
String.match returns a array
. To get the captured group, index into that array:
bodyContents.match(/\*Status:\*(.*) /)[1];
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=376653&siteId=1