我正在编写一个脚本,当您收到电子邮件时会自动调用该脚本。它在我执行它时第一次运行。下次触发器应该运行它。但它给了我错误。
ScriptApp.newTrigger("parseEmailMessages(1)")
.timeBased()
.after(1 * 60 * 1000).create();
function parseEmailMessages(start) {
start = start || 0;
var threads = GmailApp.getInboxThreads(start, 100);
var sheet = SpreadsheetApp.openByUrl(
'https://docs.google.com/spreadsheets/d/1y-DfkatwBrLHBpCMvd_Tc2Smhb87z6xrYVC78ulnMIo/edit#gid=231924366');
for (var i = 0; i < threads.length; i++) {
var tmp=null;
message = threads[i].getMessages()[0];
subject = message.getSubject();
content = message.getPlainBody();
if(subject=="Fwd: CREDIT APPLICATION"){
if (content) {
tmp = content.match(/First Name:\s*([A-Za-z0-9\s]*)(\r?\n)/);
var fname = (tmp && tmp[1]) ? tmp[1].trim() : 'No fname';
tmp = content.match(/Last Name:\s*([A-Za-z0-9\s]+)(\r?\n)/);
var lname = (tmp && tmp[1]) ? tmp[1].trim() : 'No lname';
tmp = content.match(/Address:\s*([A-Za-z0-9\s]+)(\r?\n)/);
var address = (tmp && tmp[1]) ? tmp[1].trim() : 'No address';
tmp = content.match(/City:\s*([A-Za-z0-9\s]*)(\r?\n)/);
var city = (tmp && tmp[1]) ? tmp[1].trim() : 'No city';
tmp = content.match(/State:\s*([a-zA-Z]+)*(\r?\n)/);
var state = (tmp && tmp[1]) ? tmp[1].trim() : 'No state';
tmp = content.match(/Zip:\s*([0-9]*)(\r?\n)/);
var zip = (tmp && tmp[1]) ? tmp[1].trim() : 'No zip';
tmp = content.match(/Cell Phone Number:\s*([0-9]*[-]*[0-9]*[-]*[0-9]*)(\r?\n)/);
var cphone = (tmp && tmp[1]) ? tmp[1].trim() : 'No cphone';
tmp = content.match(/Email:\s*([A-Za-z0-9@.]+)(\r?\n)/);
var email = (tmp && tmp[1]) ? tmp[1].trim() : 'No email';
tmp = content.match(/Own:\s*([A-Za-z]*)(\r?\n)/);
var proptype = (tmp && tmp[1]) ? tmp[1] : 'No proptype';
tmp = content.match(/Mortgage:\s*([$][0-9]*[,]*[0-9]*[,][0-9]*[.][0-9]*)*(\r?\n)/);
var rent = (tmp && tmp[1]) ? tmp[1].trim() : 'No rent';
tmp = content.match(/Years at Address:\s*([0-9]+\s[year(s)]+\s*[0-9]+\s*[month(s)]+)(\r?\n)/);
var yearatadd = (tmp && tmp[1]) ? tmp[1].trim() : 'No yearatadd';
//Employee info
tmp = content.match(/Employer Name:\s*([A-Za-z0-9\s]+)(\r?\n)/);
var empname = (tmp && tmp[1]) ? tmp[1].trim() : 'No empname';
tmp = content.match(/Position:\s*([A-Za-z0-9\s]+)(\r?\n)/)
var emptitle = (tmp && tmp[1]) ? tmp[1].trim() : 'No emptitle';
tmp = content.match(/Phone:\s*([0-9]*[-]*[0-9]*[-]*[0-9]*)(\r?\n)/);
var bphone = (tmp && tmp[1]) ? tmp[1].trim() : 'No bphone';
tmp = content.match(/Gross Monthly Salary:\s* ([$][0-9]*[,]*[0-9]*[,][0-9]*[.][0-9]*)*(\r?\n)/);
var salary = (tmp && tmp[1]) ? tmp[1].trim() : 'No salary';
tmp = content.match(/Years at Employment:\s*([0-9]+\s[year(s)]+\s*[0-9]+\s*[month(s)]+)(\r?\n)/);
var empyear = (tmp && tmp[1]) ? tmp[1].trim() : 'No empyear';
//Vehicl info
tmp = content.match(/Make:\s*([A-Za-z]+\s*[-]*\s*[A-Za-z]*)*(\r?\n)/);
var make = (tmp && tmp[1]) ? tmp[1].trim() : 'No make';
tmp = content.match(/Model:\s*([A-Za-z0-9\s]*)*(\r?\n)/);
var model = (tmp && tmp[1]) ? tmp[1].trim() : 'No model';
tmp = content.match(/Exterior Color:\s*([A-Za-z0-9\s]*)*(\r?\n)/);
var extcolor = (tmp && tmp[1]) ? tmp[1].trim() : 'No extcolor';
tmp = content.match(/Interior Color:\s*([A-Za-z0-9\s]*)*(\r?\n)/);
var intcolor = (tmp && tmp[1]) ? tmp[1].trim() : 'No intcolor';
tmp = content.match(/Vehicle Year:\s*([A-Za-z0-9\s]*)*(\r?\n)/);
var vehyear = (tmp && tmp[1]) ? tmp[1].trim() : 'No vehyear';
tmp = content.match(/DownPayment:\s* ([$][0-9]*[,]*[0-9]*[,][0-9]*[.][0-9]*)*(\r?\n)/);//"37 year(s) 00 month(s)" "Pension"
var downpay= (tmp && tmp[1]) ? tmp[1].trim() : 'No downpay';
sheet.appendRow([fname,lname,address,city,state,zip,cphone,email,proptype,rent,yearatadd,empname,emptitle,bphone,salary,empyear,make,model,extcolor,intcolor,vehyear,downpay]);
}//subject if
} // End if
} // End for loop
}
你能帮我吗?感谢
答案 0 :(得分:1)
您正在使用一次性触发器,该触发器将在脚本运行后运行1分钟。你需要的是一个每隔n分钟自动运行的重复触发器。
ScriptApp.newTrigger("parseEmailMessages")
.timeBased().everyMinutes(5).create();
在任何一种情况下,收到电子邮件时脚本都不会自动运行。您需要为已经处理过的电子邮件保留某种标记,否则它们将多次登录到工作表中。一个好的选择是标记带有特定标签的电子邮件,然后在下一次搜索迭代中忽略这些电子邮件。