GmailApp.getInboxThreads() пропускает электронные письма

#google-apps-script #gmail-api

#google-apps-script #gmail-api

Вопрос:

Кажется, у меня проблема с GmailApp.getInboxThreads () в скрипте Google apps. Когда я импортирую электронные письма из Gmail, он пропускает некоторые электронные письма, по-видимому, случайным образом. Все электронные письма в этой учетной записи Gmail пересылаются с других учетных записей. Ниже приведен пример кода:

 //This gets me the 5th email (correct)
var mail = GmailApp.getInboxThreads()[4].getMessages()[0].getPlainBody();

//This gets me the 7th email (wrong)
var mail = GmailApp.getInboxThreads()[5].getMessages()[0].getPlainBody();
  

Кто-нибудь знает, что может вызвать это?

Ответ №1:

Потенциальная проблема:

Согласно официальной документации, getInboxThreads():

произойдет сбой, если размер всех потоков слишком велик для обработки системой. Если размер потока неизвестен и потенциально очень велик, пожалуйста, используйте вызов ‘paged’ и укажите диапазоны потоков для извлечения при каждом вызове.

Поэтому это может быть причиной вашей проблемы.

Альтернативное решение:

Вместо этого вы можете использовать getInboxThreads(начальный, максимальный):

 var threads = GmailApp.getInboxThreads(0, 50);
//5th email
var mail = threads[4].getMessages()[0].getPlainBody();
//6th email
var mail = threads[5].getMessages()[0].getPlainBody();
  

Пожалуйста, имейте в виду, что при этом вы получите все электронные письма независимо от их типа (основные, социальные, рекламные).