Google apps script Gmail应用程序脚本-从Gmail标签而不是Gmail收件箱提取电子邮件内容
我有一个在线表单,可以将提交的表单字段数据发送到Gmail。我一直在使用下面的脚本将表单字段数据提取到Google工作表中。目前,该脚本从收件箱中提取。我想知道是否有一种方法可以调整脚本,让它看到一个Gmail标签(例如:formsubmissions),而不是收件箱Google apps script Gmail应用程序脚本-从Gmail标签而不是Gmail收件箱提取电子邮件内容,google-apps-script,gmail,Google Apps Script,Gmail,我有一个在线表单,可以将提交的表单字段数据发送到Gmail。我一直在使用下面的脚本将表单字段数据提取到Google工作表中。目前,该脚本从收件箱中提取。我想知道是否有一种方法可以调整脚本,让它看到一个Gmail标签(例如:formsubmissions),而不是收件箱 function parseEmailMessages(start) { start = start || 0; var threads = GmailApp.getInboxThreads(start, 100);
function parseEmailMessages(start) {
start = start || 0;
var threads = GmailApp.getInboxThreads(start, 100);
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 0; i < threads.length; i++) {
// Get the first email message of a threads
var tmp,
message = threads[i].getMessages()[0],
subject = message.getSubject(),
content = message.getPlainBody();
// Get the plain text body of the email message
// You may also use getRawContent() for parsing HTML
// Implement Parsing rules using regular expressions
if (content) {
tmp = content.match(/First:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var first = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Last:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var last = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Title:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var title = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Organization:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var organization = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/City:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var city = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/State:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var state = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Country:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@./\s\-]+)(\r?\n)/);
var country = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/E-mail:\s*([A-Za-z0-9!"?`?|õüö’çëÅíšÃÉÁÇÃáéñãóú#&;()-,'@_.\-]+)/);
var email = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/BLANK:\s*([\s\S]+)/);
var blank = (tmp && tmp[1]) ? tmp[1] : 'BLANK';
sheet.appendRow([first, last, title, organization, city, state, country, email]);
} // End if
} // End for loop
}
函数解析电子邮件(开始){
开始=开始| | 0;
var threads=GmailApp.getInboxThreads(开始,100);
var sheet=SpreadsheetApp.getActiveSheet();
对于(var i=0;i
- 您想从
标签中检索formsubmissions
,该标签是标签名称线程
var labelName=“formsubmissions”;//请设置标签名称
var labels=GmailApp.getUserLabels();
var线程=[];
对于(变量i=0;i
注:
- 修改后的脚本假定下面的脚本
var sheet=SpreadsheetApp.getActiveSheet()代码>工作正常
如果我误解了你的问题,我很抱歉。你试过使用吗?非常感谢你的帮助,塔奈克。我试过你的修改,效果很好。非常感谢@dlc3172很高兴您的问题得到解决。也谢谢你。
var threads = GmailApp.getInboxThreads(start, 100);
var labelName = "formsubmissions"; // Please set the label name
var labels = GmailApp.getUserLabels();
var threads = [];
for (var i = 0; i < labels.length; i++) {
if (labels[i].getName() == labelName) {
threads = labels[i].getThreads();
break;
}
}