2016-05-17 40 views
0

我正在編寫一個腳本,當您收到電子郵件時會自動調用。它首次運行時,我執行它。下次觸發應該運行它。但它給了我錯誤。如何在收到電子郵件時自動調用腳本?

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*([[email protected]]+)(\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

它給你第二次的錯誤是什麼?它可能包含有關正在發生的事情的有用信息。 – srowland

回答

1

您正在使用在腳本運行1分鐘後運行的一次性觸發器。您需要的是每n分鐘自動運行一次的重複觸發器。

ScriptApp.newTrigger("parseEmailMessages") 
.timeBased().everyMinutes(5).create(); 

在任何情況下,收到電子郵件時腳本都不會自動運行。您需要爲已處理的電子郵件維護某種標記,否則將多次登錄到工作表。一個好的選擇是標記具有特定標籤的電子郵件,然後在下一次搜索迭代中忽略這些電子郵件。

+0

謝謝。你能告訴我如何標記和忽略已寫入電子表格的電子郵件嗎? –

相關問題