Импорт сведений о пожертвованиях организации «Городские проекты» из писем, присылаемых системой Яндекс-денег в документ Google Spreadsheet.
Из указанного почтового ящика по протоколу IMAP получается список непрочитанных писем от заданного источника (системы Яндекс.Деньги) с заданным заголовком.
Письма расшифровываются в соответствии с форматом хранения писем RFC822 и переводятся в текстовой вид. Из писем извлекаются интересующие данные.
Полученные данные добавляются в указанный документ Google Spreadsheet через Google Sheets API (версии 3).
Обработанным письмам ставится отметка о прочтении, поэтому в следующий раз уже обработанные письма не отмечаются. Если возникает какая-то проблема при обработке, пометка о прочтении не ставится. После устранении проблемы можно еще раз запустить скрипты и обработать проблемные письма. Если на письмах стоит отметка о прочтении, но их зачем-то нужно обработать (например, в самый первый раз), то отметку о прочтении нужно снять (что логично).
Все настройки хранятся файле config.py
.
Настройки, необходимые для подключению к почтовому серверу.
Будьте внимательны, не храните настоящие пароли в репозитории!
login
— почтовый ящик.password
— пароль.server
— хост сервера, поддерживающего протокол IMAP. Для Яндекса —imap.yandex.ru
, для GMail —imap.gmail.com
. Для остальных уточняйте в документации почтового сервиса.ssl
— использовать шифрование. Рекомендуется оставить True.
Параметры поиска нужных писем в почтовом ящике.
mailbox
— почтовый ящик. Входящие — этоINBOX
.from
— отправитель писем с квитанциями.subject
— заголовок или часть заголовка нужных писем.
Список правил разбора писем. Состоит за пар "название", "начало строки". В качестве значения берется все, что после начала строки до следующего перевода строки (то есть если само значение будет содержать перевод строки, нужно будет что-то придумать).
Сертификат Google для использования API. Инструкция, как получить.
Параметры таблицы, в которую будут заноситься данные.
id
— идентификатор таблицы, получается из ее адреса. Пример: docs.google.com/spreadsheets/d/1ewAwn_qGkfJOLSoxJ7MBt3kUBFoVQC1rLo1zFtnEpQs
/worksheet
— номер листа в таблице, в который нужно заносить данные. Первый —0
.
Откройте доступ к редактированию таблицу для почтового ящика из поля сертификата client_email
. Имя ящика будет похоже на 688179275061-p119h20spoa8a4ccqcnrbjq87cd0f56s@developer.gserviceaccount.com
Скрипт — это программа на языке Python. Для запуска нужна версия Python 2.7.9+. Версии 3.X.Y для запуска не годятся.
- Скачать и установить Python. Если у вас Mac или Linux, с 99.9% вероятностью он уже установлен.
- Если Python версии ниже 2.7.9, возможно у вас не установлен pip. Тогда его нужно установить отдельно.
- Устанавливаем зависимости. Переходим в папку с проектом и выполяем в командной строке:
python -m pip install -r requirements.txt
- Для запуска достаточно просто запустить
runme.py
.