为何使用Apps Script MailApp仅发3封邮件 Gmail日配额却减少15
配额异常消耗原因
Google Apps Script 调用MailApp.sendEmail()时,日配额的消耗并非仅按发送邮件的数量计算,还和两个维度相关:
- 单封邮件的收件人总数:
to/cc/bcc字段中的每一个有效邮箱地址,都会占用1次基础配额 - 单封邮件的附件总大小:每满1MB的附件容量,会额外消耗1次配额,不满1MB按1MB计算
你当前的配额差值为15(1500-1485),正好是3封邮件每封消耗5次配额的总和,说明你每封邮件的JPEG附件大小约为4MB,叠加1次基础配额,刚好每封消耗5次配额,符合你的消耗情况。
验证方法
可以在邮件发送逻辑中添加配额日志,确认单封邮件的实际消耗:
function sendEmailWithAttachment(row) { var client = getClientInfo(row); var file = DriveApp.getFilesByName(client.filename); if (!file.hasNext()) { console.error("Could not open file " + client.filename); return; } var template = HtmlService.createTemplateFromFile('email-template'); template.client = client; var message = template.evaluate().getContent(); // 新增发送前配额日志 console.log('发送前剩余配额:' + MailApp.getRemainingDailyQuota()) MailApp.sendEmail({ to: client.email, subject: "Engineer's Day participation Certificate", htmlBody: message, attachments: [file.next().getAs(MimeType.JPEG)] }); // 新增发送后配额日志 console.log('发送后剩余配额:' + MailApp.getRemainingDailyQuota()) }
运行后查看Apps Script控制台的日志,即可确认单封邮件的配额扣减数值。
优化方案
- 压缩附件体积:调整JPEG文件的导出分辨率和压缩率,将单份附件控制在1MB以内,即可将单封邮件的配额消耗降低为1次
- 调试时注释发送逻辑:测试代码逻辑时先注释
MailApp.sendEmail调用,仅验证数据读取、模板渲染逻辑,避免不必要的配额消耗 - 检查Gmail自动抄送规则:如果你的Gmail账号开启了自动抄送/密送自己的设置,每封邮件会多算1个收件人,也会额外增加配额消耗,可按需关闭
内容的提问来源于stack exchange,提问作者Om Khade
相关产品推荐
相关产品推荐

