2012-06-18 74 views
0

我想導入到spreedsheet郵件addreses,郵件和發送具有特定標籤的所有郵件的時間,我有超過1300標籤上的消息。spreedsheet腳本時間限制

到目前爲止,我被一個100級的消息做他們每次運行,因爲這就是我所看到的極限是, 但現在,進口500行後,我的劇本採空工作,並給了我一個

"TypeError: Cannot call method "getMessages" of undefined. (Línea 19)Ignorar"

我該怎麼辦?等兩個小時?等一天?開始一個新的spreedsheet?

感謝, LEO

回答

0

的Gmail讀配額爲10000 /天(見quotas on the dashboard)。你確定這個錯誤不是來自其他地方嗎?也許你可以提供一些你使用的代碼?我會建議通過避免這些大量的setValue()需要很多時間來加快你​​的代碼...試試這個:代替代碼中的相關部分(代碼中的相關部分) )

var sheet = SpreadsheetApp.getActiveSheet(); 
    var toShow=new Array() 
    for (var i = 502; i < 550; i++) { 
    var myThread = GmailApp.search("is:w-destino-mensajes")[i]; 
    if(myThread.length>0){ 
    var message = myThread.getMessages()[0]; 
    toShow.push([message.getDate(),message.getFrom(),message.getBody()]); 
} 
    } 
    sheet.getRange(startRow,2,toShow.length,toShow[0].length).setValues(toShow) 

編輯:我不認爲你的問題是關於限制,看到錯誤消息我猜MyThread的在某些情況下返回一個空值,並創建一個錯誤。您可以在嘗試getMessages之前嘗試添加存在條件(請參閱上面的代碼)。

+0

該腳本工作正常,我只是改變迭代索引號碼,每次我執行。 – leofishman

+0

var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; //for (var i = 0; i < threads.length; i++) { for (var i = 502; i < 550; i++) { var myThread = GmailApp.search("in:w-destino-mensajes")[i]; var message = myThread.getMessages()[0]; sheet.getRange(startRow + i, 2).setValue(message.getDate()); sheet.getRange(startRow + i, 3).setValue(message.getFrom()); sheet.getRange(startRow + i, 4).setValue(message.getBody()); SpreadsheetApp.flush(); } leofishman

+0

我仍然有同樣的錯誤,我可能已經達到電子表格上的限制,明天將不得不測試您的腳本。 – leofishman