Обновление: Умм, похоже, что-то случилось. Теперь мой почтовый ящик перешел от 36 000 до 353 000+ сообщений. А? Что здесь происходит.GmailApp.moveToArchive: Выполнение выполнено успешно, но ничего не произошло
Я никогда не архивировал свой почтовый ящик Gmail и, как результат, имел в нем 36 000+ сообщений. Я хотел бы архивировать все сообщения в течение 60 дней, и я не делаю это вручную.
Итак, после некоторых поисковых запросов я нашел скрипт google, который мог бы сделать это ниже. Однако GmailApp.moveThreadsToArchive(threads);
, по-видимому можно назвать только до 100 потоков одновременно, поэтому я попытался пререкаться его в петлю, в то время, что вызывает его много раз на 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;
}
Тем не менее, как debugs, так и успешно выполняется (очень длинный Execution Transcript заканчивается на [14-01-16 21:40:59:199 PST] Execution succeeded [284.472 seconds total runtime]
), но мой почтовый ящик остается неизменным - осталось 36 000 + unarchived сообщений.
Любые предложения, что может быть неправильным?
Существуют фактические ограничения на то, сколько писем можно обрабатывать сразу. Этот вопрос может помочь вам немного (хотя он попытался решить совершенно другую проблему, которая была прежней ошибкой): http://stackoverflow.com/questions/15234882/need-help-optimizing-a-google -apps-script-that-labels-emails –
Вам придется немного приспособить его к вашим потребностям. –
Я также хотел бы отметить, что ваш сценарий не учитывает возможность того, что у вас есть (вероятно) неполная партия в качестве последней. Кроме того, у вас есть бесполезный беспорядок в вашем скрипте: ваша переменная-интервал никогда не будет пустой строкой, потому что вы установите ее как таковую, и вам не нужно сначала объявлять количество потоков в 0, потому что если ваш поиск ничего не приносит, вы Получится массив нулевой длины. Последнее не требуется, когда вы удаляете ненужный if-statement. –