更新:嗯,似乎發生了一些事情。現在我的收件箱裏已經有36,000多條消息,其中有353,000條消息。咦?這裏究竟發生了什麼。GmailApp.moveToArchive:執行成功,但沒有任何移動
我從未存檔過我的Gmail收件箱,因此其中有36,000多封郵件。我想將60天以上的所有郵件歸檔,而且我沒有辦法手動完成。
所以一些谷歌搜索後,我發現一個谷歌腳本,可以做到這一點,下面。然而,GmailApp.moveThreadsToArchive(threads);
可明顯只能叫上最多同時100個線程,所以我試圖爭論它變成一個while循環調用了很多次,在100個線程時間:
/**
* Archives Emails older than a given time interval
* src: http://www.quora.com/Gmail/Is-there-a-way-to-auto-archive-emails-after-a-certain-number-of-days
*
* example:
* RunAutoArchive('2w')
* RunAutoArchive('1m')
* RunAutoArchive('5y')
*/
function RunAutoArchive(){
// archive messages older than:
var interval='60d';
// number of threads
var threadCount = 0;
var start = 0;
var end = 100;
// find messages older than a certain time
if(interval != ""){
var searchQuery = 'in:Inbox older_than:'+interval;
var threads = GmailApp.search(searchQuery);
threadCount = threads.length;
// if there are any threads
if(threadCount > 0){
while(start <= threadCount){
// move threads to archive
GmailApp.moveThreadsToArchive(threads.slice(start,end));
// increment count
start += 100;
end += 100;
}
}
}
// refresh threads
GmailApp.refreshThreads(threads);
return threadCount;
}
然而,調試併成功運行(非常長的執行腳本以[14-01-16 21:40:59:199 PST] Execution succeeded [284.472 seconds total runtime]
結尾),但我的收件箱保持不變 - 保留了36,000多個未歸檔的消息。
有什麼建議可能是錯的?
實際上限制了一次可以處理多少封電子郵件。這個問題可能會幫助你一點點(儘管它試圖解決一個完全不同的問題,這是一個以前的錯誤):http://stackoverflow.com/questions/15234882/need-help-optimizing-a-google -apps-script-that-labels-emails –
儘管如此,您仍然需要適應一下您的需求。 –
我也想指出,你的腳本沒有考慮到你有可能不完整的批次作爲最後一個。另外,你的腳本中有一些無用的混亂因素:你的區間變量永遠不會是一個空字符串,因爲你將它設置爲這樣,並且你不需要首先聲明線程數爲0,因爲如果你的搜索沒有帶來任何東西,會得到一個零長度的數組。當你刪除不必要的if語句時,後者是不需要的。 –