每天限制是在连续24小时内应用的,不是固定的一天中的时间。
我正在尝试一种方法,以获取gmail / gsuite帐户在接下来的24小时内仍可以发送多少电子邮件。简而言之,我想以一种一致的方式来获取Gmail发送配额。
据我了解,发送的gmail / gsuite配额可以归纳为以下内容(不包括MailApp):
在应用程序脚本中使用GmailApp,limits are:
[[GSuite帐户
function logRemainingQuota(e) {
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota now: " + emailQuotaRemaining);
}
[我试图通过gmail和一些插件通过同一帐户发送电子邮件,配额从未立即减少,只是几个小时后。
2)使用gmail api messages.list计算值通过拨打以下电话,我可以在resultSizeEstimate字段中获得过去24小时内发送的电子邮件数量,或者通过简单地对消息计数即可。
curl \
'https://www.googleapis.com/gmail/v1/users/me/messages?q=from%3Ame%20newer_than%3A1d%20in%3Aanywhere&fields=resultSizeEstimate&key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
查询为:from:me newer_than:1d in:anywhere
但是,此值似乎不正确,并且正在返回更多数据。此外,也无法区分处于试用状态的gsuite帐户和未处于试用状态的gsuite帐户,这使得难以以可靠的方式应用计算。总结,我有以下问题:
有没有一种方法可以用来计算/获取通过gmail发送消息(或收件人)的剩余配额数量(如果在应用脚本中则更好)?是否有办法了解gsuite帐户是否正在试用中?
对不起,很长的帖子,谢谢您的帮助!
function sendWithGmailApp(e) {
var now = new Date();
GmailApp.sendEmail("[email protected]", "current time", "The time is: " + now.toString());
Logger.log("Gmail App used ");
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota now Gmail App: " + emailQuotaRemaining);
}
function sendWithGmailAPI(e) {
var draft = GmailApp.getMessageById('17139fda2e54af59');
var raw = draft.getRawContent();
var message = Gmail.newMessage();
Gmail.Users.Messages.send(message, "me", Utilities.newBlob(raw, "message/rfc822"));
Logger.log("Gmail Api used ");
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota now Gmail Api: " + emailQuotaRemaining);
}
function showquota(){
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota now Gmail App: " + emailQuotaRemaining);
}
我还制作了一个脚本副本,以便确定配额是基于用户还是基于用户/脚本。这是我的结论:* MailApp.getRemainingDailyQuota()适用于通过GmailApp发送的电子邮件*配额与GmailApp / MailApp有关,并且是基于用户的(因此其他脚本可以使用该配额)*使用GmailApi(高级服务)不会消耗此配额,因此它属于standard gmail quota。*我已经在旧版GAE引擎中进行了测试,并且可以正常工作
所以现在我的问题是,1)如果我的应用程序使用高级服务,是否可以通过gmail API预测用户的配额?2)使用高级服务,因为它基本上是包装器,所以也会影响URLFetch配额?我正在尝试一种方法,以获取gmail / gsuite帐户在接下来的24小时内仍可以发送多少电子邮件。简而言之,我想以一种一致的方式来获取gmail发送配额。从我的...
方法MailApp.getRemainingDailyQuota()将返回与MailApp和GmailApp的使用有关的剩余配额,其限制表示为here。
[创建messages.list时,响应中还包括来自视频群聊的消息,这些消息带有“ CHAT”标签。无论如何,您都可以通过“已发送”标签过滤已发送的消息。您可能尝试使用messages.list方法来找到解决方法,问题是您不知道每个用户的配额何时刷新,如here所述:每天限制是在连续24小时内应用的,不是固定的一天中的时间。
[如果您要尝试开发某种封闭的解决方法,则Properties类可用于使用脚本和基于时间的triggers为每个用户存储值,可能对您有用。