function onOpen() {
const spreadsheet = SpreadsheetApp.getActive();
let menuItems = [
{ name: 'Gather emails', functionName: 'gather' },
];
spreadsheet.addMenu('Extract Gmail', menuItems);
}
function gather() {
getGmail();
}
function getGmail() {
let ss = SpreadsheetApp.getActive();
const query = "is:sent subject:(VFXRIO Live Ticket Number)";
var max = 100;
var offset = 0;
var threads = [];
while (true) {
var searchThreads = GmailApp.search(query, offset, max);
threads = threads.concat(searchThreads);
if (threads.length < max) {
break;
}
offset += max;
}
let label = GmailApp.getUserLabelByName("done");
if (!label) { label = GmailApp.createLabel("done") }
let ticket;
for (i = 0; i < threads.length; i++) {
ticketline = threads[i].getMessages()[0].getPlainBody().match(/Your Ticket number is: (.*)/gm);
ticket = ticketline[0].split(": ");
emailline = threads[i].getMessages()[0].getTo();
emailsplit = emailline.split(' <');
name = emailsplit[0];
email = emailsplit[1].replace(">", "");
ss.getRange('A' + (i + 1)).setValue(threads[i].getMessages()[0].getDate());
ss.getRange('B' + (i + 1)).setValue(name);
ss.getRange('C' + (i + 1)).setValue(email);
ss.getRange('D' + (i + 1)).setValue(ticket[1]);
}
}
Extract Gmail Content
by
Tags:
Leave a Reply