Найти тему

Импорт писем из Gmail в гугл таблицы - как перелопатить авгиевы конюшни за минуту

Как и любому, мне на почту падает много писем. Большая часть писем автоматические рассылки, уведомления и спам - чаще всего бесполезны. Среди уведомлений, впрочем, есть письма-подвтерждения от автоматического сервиса о заказе услуг. И такого рода письма иногда хочется найти все разом, и разом проанализировать. А когда мы говорим про "анализировать", сразу на ум приходят гугл таблицы и эксель. Сегодня будем наводить порядок через гугл-таблицы.

Подготовка

Создадим новую гугл таблицу и в ней формочку:

-2

Я хотел бы, чтобы по нажатию кнопки или пункта меню в этом листе создавалась табличка со всеми письмами, подходящими под требования из формы.

Теперь нужно создать скрипт. Идем в меню "Инструменты -> Редактор скриптов":

-3

Пишем скрипт

Для начала добавим функцию, которая позволит вызвать заполнения листа из меню:

-4

Функция onOpen вызывается автоматически при открытии таблицы (если, конечно, установлены разрешения) и в ней мы добавляем в интерфейс пункт меню "GMail", а в него подпункт "Импортировать", нажатие на который вызовет функцию "importMail". Только самой функции-то и нет! Давайте напишем ее.

Запускаем скрипт на проверку...

Вроде бы работает!
Вроде бы работает!

Файл доступен по ссылке. Чтобы пользоваться им, нужно сначала сделать копию себе, а потом либо через меню Gmail запустить скрипт (меню появится спустя 5-15 секунд после открытия вашей копии файла), либо зайти в редактор скриптов и оттуда запустить функцию. Скрипт запросит разрешение на выполнение, и только после разрешения сможет выполнять свою работу.

Несколько комментариев

Изначально я хотел реализовать выгрузку с помощью UDF (User Defined Function - функция, определяемая пользователем), тоже через скрипты, но работающая как обычная функция в таблицах. Увы, это нельзя. Есть ограничения на UDF - им недоступно все то, что требует дополнительных разрешений.

Постскриптум

Написал статью, опубликовал файл, и понял что все-таки не реализовал последние три пункта формы запроса. Думаю вы справитесь :-) Но если нет, пишите в комментарии, расскажу как. И еще, если захотите добавить колонки в таблицу с письмами - вот список доступных полей: https://developers.google.com/apps-script/reference/gmail/gmail-thread