i trying extract specific info email in 1 of labels in gmail. i've hacked (my scripting knowledge limited) following based on script https://gist.github.com/ferrari/9678772. getting error though: "cannot convert array gmail thread - line 5"
any appreciated.
/* based on https://gist.github.com/ferrari/9678772 */ function parseemailmessages(start) { /* var threads = gmailapp.getinboxthreads(start, 100); */ var threads = gmailapp.getmessagesforthread(gmailapp.search("label:labelname")); var sheet = spreadsheetapp.getactivesheet(); var tmp, result = []; (var = 0; < threads.length; i++) { // first email message of threads var message = threads[i].getmessages()[0]; // plain text body of email message // may use getrawcontent() parsing html var content = messages[0].getplainbody(); // implement parsing rules using regular expressions if (content) { tmp = content.match(/name , surname:\n([a-za-z0-9\s]+)(\r?\n)/); var username = (tmp && tmp[1]) ? tmp[1].trim() : 'no username'; tmp = content.match(/phone number:\n([\s\s]+)/); var phone = (tmp && tmp[1]) ? tmp[1] : 'no phone'; tmp = content.match(/email address:\n([a-za-z0-9@.]+)/); var email = (tmp && tmp[1]) ? tmp[1].trim() : 'no email'; tmp = content.match(/prefered contact office:\n([\s\s]+)/); var comment = (tmp && tmp[1]) ? tmp[1] : 'no office'; sheet.appendrow([username, phone, email, comment]); } } };
thanks folks.. did trick:
// adapted https://gist.github.com/ferrari/9678772 function processinboxtosheet() { // have data separate avoid google app script limit! var start = 0; var label = gmailapp.getuserlabelbyname("yourlabelname"); var threads = label.getthreads(); var sheet = spreadsheetapp.getactivesheet(); var result = []; (var = 0; < threads.length; i++) { var messages = threads[i].getmessages(); var content = messages[0].getplainbody(); // implement own parsing rule inside if (content) { var tmp; tmp = content.match(/name , surname:\n([a-za-z0-9\s]+)(\r?\n)/); var username = (tmp && tmp[1]) ? tmp[1].trim() : 'no username'; tmp = content.match(/phone number:\n([\s\s]+)/); var phone = (tmp && tmp[1]) ? tmp[1] : 'no phone'; tmp = content.match(/email address:\n([a-za-z0-9@.]+)/); var email = (tmp && tmp[1]) ? tmp[1].trim() : 'no email'; tmp = content.match(/prefered contact office:\n([\s\s]+)/); var comment = (tmp && tmp[1]) ? tmp[1] : 'no office'; sheet.appendrow([username, phone, email, comment]); utilities.sleep(500); } } };
Comments
Post a Comment