应用脚本GmailApp归档不起作用

时间:2015-05-29 13:15:06

标签: google-apps-script gmail gmail-api

我有一个功能,我希望与Google Apps脚本中的每日时间触发相关联。该功能应该将我的收件箱中标记为已读的超过14天的所有电子邮件归档并存档。这是我从here

获得的代码
function batchArchiveA() {
  var batchSize = 100 // Process up to 100 threads at once

  var threads = GmailApp.search('label:"inbox" is:read older_than:14d -label:"Delete me"');
  for (j = 0; j < threads.length; j+=batchSize) {
    Logger.log("Thread " + j);
    GmailApp.moveThreadsToArchive(threads.slice(j, j+batchSize));
  }
}

我已手动运行此功能以测试它几次。但是,当我在Gmail中打开收件箱时,似乎没有反映出任何更改。我的收件箱中还有890多封电子邮件可以追溯到2012年(在促销,更新等子标签下还有更多)

事实上,执行输出最初报告没有错误,我可以看到很多线程被加载然后在循环中处理。但是,现在当我运行脚本时,没有加载线程。搜索只返回一个空数组,函数退出。

我只是好奇我做错了什么。我已经查看了针对GmailApp的Google Developers参考资料,但就调试问题而言,我还没有做多少。并且可能由于搜索不再返回任何内容,之前的运行实际上确实有效...因为如果他们确实存档了14岁以上的所有线程,那么搜索确实不会再找到它们。

我在加载Gmail时没有看到收件箱中的电子邮件消失的任何想法?

1 个答案:

答案 0 :(得分:1)

好吧,事实证明它工作正常,但我的收件箱只是如此堵塞以至于我认为搜索一次只能获取最大数量的线程(必须是400-500),所以我没有真的注意到了差异。

我将它设置在一个循环中,只要搜索返回一个大于0的数组,它就会继续运行。这意味着它将遍历它可以运行的所有线程(或者,就像此刻一样,直到达到最大执行时间限制!) 。我将函数设置为定期运行,我的收件箱已经缩小到几乎没有!