Я пытаюсь найти способ узнать, сколько еще сообщений электронной почты может отправить учетная запись gmail / gsuite в течение следующих 24 часов. Короче говоря, я хотел бы иметь последовательный способ получения квоты на отправку gmail.
Насколько я понимаю, квоту на gmail / gsuite для отправки можно обобщить следующим образом (исключая MailApp):
Использование GmailApp в сценарии приложения, ограничения :
- 1500 получателей в день для учетных записей GSuite
- от 100 до 500 получателей в день для GSuite учетные записи в пробная версия
- 100 получателей в день учетные записи Gmail
При использовании "сырого" Gmail Apis ограничения равны :
- 2000 сообщений в день для учетных записей GSuite
- 500 сообщений в день для учетных записей GSuite в пробная версия
- 500 получателей в день учетные записи Gmail
Учитывая, что в моей реализации в приложении я мог использовать GmailApp или расширенную службу Gmail , как я могу последовательно получить оставшуюся квоту, чтобы продемонстрировать пользователя и в конечном итоге остановить электронную почту s?
Я следовал этим двум путям, но безрезультатно:
1) в приложении я могу использовать MailApp.getRemainingDailyQuota () Однако из моих тестов это выглядит так что этот метод не возвращает действительное значение, а просто «вычисленное в последний раз» значение, которое обновляется с большими интервалами (в моем тесте это заняло 8 часов)
это код, который я использовал:
function logRemainingQuota(e) {
var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota now: " + emailQuotaRemaining);
}
Я пытался отправлять электронные письма через gmail и некоторые дополнения через одну и ту же учетную запись, и квота никогда не уменьшалась сразу, всего через несколько часов.
2) вычислите значение, используя сообщения gmail api .list Посредством следующего вызова я могу получить количество сообщений электронной почты, отправленных за последние 24 часа в поле resultSizeEstimate или просто подсчитав сообщения.
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
Однако это значение не соответствует действительности и возвращает намного больше данных. Кроме того, нет никакого способа отличить guish между учетной записью gsuite, которая находится в пробной версии, и учетной записью, которая не проверяет, что затрудняет надежное применение расчета.
Подводя итог, я У меня есть следующие вопросы:
- Есть ли способ, который можно использовать для расчета / получения количества оставшейся квоты для отправки сообщений (или получателей) с помощью Gmail (гораздо лучше, если в сценарии приложения)?
- есть ли способ понять, находится ли пробная версия gsuite?
Извините за длинный пост и спасибо за помощь!
---- РЕДАКТИРОВАТЬ ----
Итак, я обновил свой код для тестирования моего скрипта:
function sendWithGmailApp(e) {
var now = new Date();
GmailApp.sendEmail("example@gmail.com", "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 (расширенный сервис) эта квота не будет потребляться, поэтому она возвращается к стандартной квоте gmail .
- Я сделал свои тесты в прежней версии Движок GAE и он работает
Итак, теперь мой вопрос,
1), есть ли способ предсказать квоту пользователя через API Gmail, если мое приложение использует расширенный сервис ?
2) использование расширенного сервиса также повлияет на квоту URLFetch, так как это в основном оболочка?