Как и любому, мне на почту падает много писем. Большая часть писем автоматические рассылки, уведомления и спам - чаще всего бесполезны. Среди уведомлений, впрочем, есть письма-подвтерждения от автоматического сервиса о заказе услуг. И такого рода письма иногда хочется найти все разом, и разом проанализировать. А когда мы говорим про "анализировать", сразу на ум приходят гугл таблицы и эксель. Сегодня будем наводить порядок через гугл-таблицы.
Подготовка
Создадим новую гугл таблицу и в ней формочку:
Я хотел бы, чтобы по нажатию кнопки или пункта меню в этом листе создавалась табличка со всеми письмами, подходящими под требования из формы.
Теперь нужно создать скрипт. Идем в меню "Инструменты -> Редактор скриптов":
Пишем скрипт
Для начала добавим функцию, которая позволит вызвать заполнения листа из меню:
Функция onOpen вызывается автоматически при открытии таблицы (если, конечно, установлены разрешения) и в ней мы добавляем в интерфейс пункт меню "GMail", а в него подпункт "Импортировать", нажатие на который вызовет функцию "importMail". Только самой функции-то и нет! Давайте напишем ее.
Запускаем скрипт на проверку...
Файл доступен по ссылке. Чтобы пользоваться им, нужно сначала сделать копию себе, а потом либо через меню Gmail запустить скрипт (меню появится спустя 5-15 секунд после открытия вашей копии файла), либо зайти в редактор скриптов и оттуда запустить функцию. Скрипт запросит разрешение на выполнение, и только после разрешения сможет выполнять свою работу.
Несколько комментариев
Изначально я хотел реализовать выгрузку с помощью UDF (User Defined Function - функция, определяемая пользователем), тоже через скрипты, но работающая как обычная функция в таблицах. Увы, это нельзя. Есть ограничения на UDF - им недоступно все то, что требует дополнительных разрешений.
Постскриптум
Написал статью, опубликовал файл, и понял что все-таки не реализовал последние три пункта формы запроса. Думаю вы справитесь :-) Но если нет, пишите в комментарии, расскажу как. И еще, если захотите добавить колонки в таблицу с письмами - вот список доступных полей: https://developers.google.com/apps-script/reference/gmail/gmail-thread