Gmail API 发送过多电子邮件时超出配额限制

Gmail API Quota Limit Exceeded When Sending Too Many Emails

我正在使用 gmail api 和 nodejs 创建电子邮件自动化平台。它工作正常,除非电子邮件列表包含 >100 封电子邮件。

当我尝试发送电子邮件时出现此错误

Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'gmail.googleapis.com' for consumer 'project_number:xxxxxxxxxxxxx'.

发送电子邮件我使用以下方法

const r = await gmail.users.messages.send({
  auth, // coming from google oauth client
  userId: "me",
  requestBody: {
    raw: makeEmailBody( // function to create base64 email body with necessary headers
      thread.send_to,
      {
        address: user.from_email,
        name: user.from_name,
      },
      subject,
      template,
      thread.id
    ),
  },
});

关于Usage limits的信息

Per user rate limit 250 quota units per user per second, moving average (allows short bursts).

Method--------------------------Quota Units

messages.send-----------------100

换句话说,发送100封邮件对应使用10000个配额单位,但您每秒只能使用250个配额单位。

这意味着您需要放慢代码执行速度以避免 运行 出现配额问题。

这可以通过 指数退避对数 来完成,如 here 所述。