You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

免费AppScript账户用GmailApp抄送超100人触发收件人上限异常

关于Google Apps Script免费版Gmail收件人限制的问题解答

1. 升级账户能否解决该问题?

升级到Google Workspace付费版可以提升单邮件的收件人上限,但并非无限制:

  • 免费Google账户:单邮件的收件人总数(To+Cc+Bcc总和)上限是100人,这就是你触发Limit Exceeded: Email Recipients Per Message错误的原因
  • Google Workspace付费版:单邮件收件人总数上限提升至1000人(不同套餐可能略有差异)

如果你的抄送人数在1000以内,升级后就能直接解决问题;要是超过1000人,还是需要通过分批发送的方式处理。

2. 代码优化方案(无论是否升级都适用)

不管有没有升级账户,当收件人数量超过对应上限时,拆分列表分批发送都是更稳妥的方案。以下是优化后的代码:

function sendMail(fullname, mailTo, mailCC, subject, image) {
  var img = DriveApp.getFileById(image).getAs("image/png");
  var logo = {"logo" : img};
  
  // 把CC收件人字符串拆分为数组,清理空值和多余空格
  var ccRecipients = mailCC.split(",").map(recipient => recipient.trim()).filter(recipient => recipient);
  // 每批收件人数量:免费版填100,付费版可填1000
  const batchSize = 100;
  
  // 循环分批发送邮件
  for (let i = 0; i < ccRecipients.length; i += batchSize) {
    const currentBatch = ccRecipients.slice(i, i + batchSize).join(",");
    try {
      GmailApp.sendEmail(mailTo, subject, "", {
        cc: currentBatch,
        htmlBody: `<p>Hi ${fullname}</p></br><img src='https://drive.google.com/uc?export=view&id=${image}'>`
      });
      console.log(`第${Math.floor(i/batchSize)+1}批邮件发送成功,抄送人数:${currentBatch.split(",").length}`);
    } catch (e) {
      console.error(`第${Math.floor(i/batchSize)+1}批邮件发送失败:${e.message}`);
    }
    // 可选:添加1秒延迟避免触发发送频率限制
    // Utilities.sleep(1000);
  }
}

额外提醒

  • 除了单邮件收件人上限,还要注意每日发送邮件总数限制:免费版每日最多发100封,付费版根据套餐不同(比如基础版每日1500封)
  • 若分批发送时遇到频率限制,可适当延长延迟时间

内容的提问来源于stack exchange,提问作者Khởi Tiêu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:15:56