使用 Google Apps 脚本在 GmailApp 中限制 250 / 500 个线程

Posted

技术标签:

【中文标题】使用 Google Apps 脚本在 GmailApp 中限制 250 / 500 个线程【英文标题】:250 / 500 threads limit in GmailApp with Google Apps Script 【发布时间】:2018-02-16 04:16:09 【问题描述】:

在 Google Apps 脚本中使用 GmailApp 时,我注意到以下限制:

var threads = GmailApp.search("to:test@example.com");
Logger.log(threads.length);  // 250 max

var threads = GmailApp.search("label:mylabel");
Logger.log(threads.length);  // 500 max

var label = GmailApp.getUserLabelByName('mylabel');
var threads2 = label.getThreads();
Logger.log(threads2.length); // 500 max

您将如何在超过 500 或 250 个线程上完成工作(例如提取电子邮件地址并将其添加到列表中)

您会通过按日期拆分来手动完成吗(不是很漂亮但可能有效)?

【问题讨论】:

【参考方案1】:

您可以使用 max 循环遍历结果,例如100 并在生成的threads 的长度小于max 时停止:

var max = 100;
var offset = 0;
var searchThreads = [];

while (true) 
  var threads = GmailApp.search("to:test@example.com", offset, max);
  searchThreads = searchThreads.concat(threads);
  if (threads.length < max) 
    break;
  

  offset += max;

【讨论】:

哇,我仔细检查了一遍,并在一个标签上进行了我之前的测试... 恰好 250个线程,所以很混乱!真幸运!现在使用 600 多个线程标签进行测试,您的代码可以正常工作! @Basj 哈哈,真不幸。很高兴你明白了。

以上是关于使用 Google Apps 脚本在 GmailApp 中限制 250 / 500 个线程的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Apps 脚本在 Google 表格中创建新表格

在 Google Apps 脚本中使用 Mandrill API

在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格

使用 Google Apps 脚本在 Blogger 中创建帖子

Google 表单 - 使用 Google Apps 脚本在项目中添加自定义按钮“更多信息”

如何在 Google Apps 脚本中使用服务帐户对 Google 表格进行身份验证