我如何让谷歌应用脚本服务的剩余每日邮件配额一致地工作?
我做了一个关于Google应用程序脚本的项目,以便在发送表单回复后自动发送电子邮件。但是,当我使用MailApp.getRemainingDailyQuota()
方法检查每日剩余电子邮件配额时,配额响应因每次脚本执行而异。
所以我使用MailApp.getRemainingDailyQuota()
方法创建了另一个项目来测试配额,尽管如此,每次执行时配额响应都不同。
用于测试的代码:
function testeDeCota() {
let cota;
cota = MailApp.getRemainingDailyQuota();
Logger.log("Cota de emails restantes: " + cota);
cota = MailApp.getRemainingDailyQuota();
Logger.log("Cota de emails restantes: " + cota);
}
我使用的工作区帐户的配额为每天1500封电子邮件。
这是我执行死刑的截图。请注意,有3次连续执行,没有发送任何电子邮件,即使配额响应各不相同。回复如下:
1394; 1399; 1390。
每当我尝试发送电子邮件或获取配额信息时,数字只是随机变化。
printscreen of the script executions
解决方案
这似乎是故意的行为。
除了Marios提到的旧问题(Gmail SendEmail Quota - Decrementing Bug/issue),这是最近在Issue Tracker上报告的,并以Intended Behaviour
:
- MailApp.getRemainingDailyQuota() is giving incorrect information
查看备注#6和#8:
此方法返回值的这种小波动是意料之中的。
此行为是由Apps脚本内部处理配额的方式引起的。这是预期行为。
不同的执行与循环:
有趣的是,只有在单独的调用中调用此方法时才能看到这种差异。相反,在循环中调用此方法时,不会显示波动:
for(i=1; i<=n; i++) {
SpreadsheetApp.openById(documentID).getSheetByName(sheetName).appendRow([new Date(), MailApp.getRemainingDailyQuota()]);
Utilities.sleep(1000);
}
提交功能请求:
如参考问题中所述,如果这以某种方式影响了您的工作流程,您可以考虑filing a feature request。
相关文章