Apps 脚本 GmailApp 归档不起作用

Apps Script GmailApp archiving not working

我有一个函数想绑定到 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 中打开收件箱时,none 的更改似乎得到了反映。自 2012 年以来,我的收件箱中仍有 890 多封电子邮件(还有更多在促销、更新等子标签下)

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

我只是好奇我做错了什么。我查看了 GmailApp 的 Google 开发人员参考,但就调试而言,我可以继续的内容并不多。并且大概,由于搜索不再 returns 任何东西,之前的 运行 实际上确实起作用了......因为如果他们确实存档了所有早于 14 的线程,那么搜索确实将不再找到它们。

为什么我在加载 Gmail 时没有看到电子邮件从我的收件箱中消失?

好吧,事实证明它可以正常工作,但我的收件箱太拥挤了,我认为搜索一次只能抓取最大数量的线程(必须是 400-500 左右),所以我没有真正注意到差异。

我将它设置在一个循环中,只要搜索 returns 一个大于 0 的数组,它就会保持 运行ning。这意味着它将 运行 通过它可以通过的所有线程(或者,与目前一样,直到达到最大执行时间限制!)。我定期将功能设置为 运行,而我的收件箱已经 sh运行k 几乎没有了!