Вложения Gmail на ДискРазработка и доработка

Скрипт Google Apps Script, который сохранит вложения из вашего Gmail в папки Google Диска по отправителю, дате или типу

Обычно готово за 15 минутДоработки включеныКонтроль качества
Пакеты
Защита оплатыПодробнее
  • Доработки в рамках пакета бесплатны.
  • Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.

При оплате деньги резервируются и переходят сервису, только когда вы примете работу.

Скрипт Google Apps Script, который сохранит вложения из вашего Gmail в папки Google Диска по отправителю, дате или типу

Пример результата

Пример по пакету «Стандарт»

Сводный отчёт в Excel из ежемесячных продаж 9 магазинов

Как его запускают

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Папка: sales/2026-10, найдено файлов: 9
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 строки
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 строк
2026-11-02 09:14:04 WARN  shop-07.csv: пропущены 3 строки без цены (строки 88, 412, 913)
2026-11-02 09:14:05 INFO  Готово: 10 412 строк -> report-2026-10.xlsx (листы «Продажи» и «Итоги»)

Настройки, а не код

Названия столбцов каждого магазина лежат в settings.ini. Новый магазин или переименованный столбец — это одна строка там:

[columns]
date = Дата, Дата продажи, День
product = Товар, Наименование, Название
quantity = Кол-во, Количество, Шт
price = Цена, Цена за шт

Фрагмент кода

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Читает файл одного магазина и даёт столбцам названия из отчёта."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: нет столбца «{name}» (искали: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Файлы: ZIP-архив с merge_sales.py (310 строк), settings.ini, requirements.txt и README: как установить Python, как запустить скрипт и что значит каждое сообщение в журнале. Клиент запускает скрипт на своём компьютере.

Клиент: небольшая сеть из 9 магазинов канцтоваров. Каждый магазин присылает продажи за месяц в CSV или Excel, и названия столбцов у всех немного разные. Задача: скрипт, который читает все файлы из папки, приводит столбцы к одному виду и сохраняет один отчёт в Excel: все продажи и отдельный лист с итогами по магазинам.

Клиент и все данные вымышлены.

Об услуге

Счета поставщиков, подписанные документы, еженедельные отчёты: когда вложения остаются в Gmail, найти нужное потом можно только перебирая переписку. Этот скрипт Google Apps Script проходит по письмам, которые вы выбрали поиском Gmail, например от поставщиков с PDF, и сохраняет каждое вложение в папку Google Диска: в одну папку или в подпапки по отправителю, месяцу или типу файла, с именами, где есть дата и отправитель. Потом он ставит письму метку «Сохранено», чтобы ничего не сохранялось дважды, а начиная со «Стандарта» записывает каждый файл в журнал. Мелкие картинки из подписей можно не сохранять. Файлы занимают место на вашем Диске. Запуск ограничен примерно шестью минутами, поэтому большой накопившийся объём идёт частями. Ставите и запускаете скрипт вы в своём аккаунте Google.

Что входит

  • Что вы получитеАрхив ZIP с кодом Apps Script и README, где показано, как подключить его к аккаунту, дать доступ и запустить; код также виден на странице заказа.
  • Письма через поиск Gmailнапример, from:@supplier.example has:attachment
  • Папки как нужноОдна папка или по отправителю, месяцу, типу
  • Понятные именаК имени добавляются дата и отправитель
  • Ничего дваждыСохранённые письма получают метку и в следующий раз пропускаются
  • Понятный кодС комментариями, папку легко добавить потом

Порядок работы

  1. 1
    ЗадачаВы описываете, какие письма брать и как раскладывать по папкам
  2. 2
    КодМы пишем скрипт и инструкцию по установке
  3. 3
    ПроверкаВы запускаете его сначала на узком поиске и проверяете папку
  4. 4
    ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть

Что нужно от вас

Какие письма брать: отправители или домены, слова в теме, типы файлов, период или поиск Gmail, которым вы уже пользуетесь. Как устроить и назвать папки на Диске, как называть файлы и что пропускать (картинки из подписей, файлы меньше определённого размера). Примерно сколько писем с вложениями есть сейчас и как часто приходят новые и пользуетесь ли вы бесплатным Gmail или Google Workspace.

В брифе мы спросим:

  • Какие вложения нужны?
  • Как разложить по папкам?
  • Как называть файлы?
  • И старые письма, и как часто?

Сравнение пакетов

ПакетыЭкономОдна папка16 $СтандартПапки с настройками33 $БизнесПрограмма для вложений67 $
Срок1 день2 дня3 дня
Доработки123
Коддо 150 строкдо 400 строкдо 1000 строк
Файлов кода1до 3до 8
Файл настроекНетДаДа
Понятные ошибки и журнал работыНетДаДа
Параметры запуска и инструкция для запуска по расписаниюНетНетДа
Инструкция по установке и запуску (README)ДаДаДа
ЯзыкGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
Заказать ЭкономЗаказать СтандартЗаказать Бизнес

Защита оплаты

Вы оплачиваете заказ сразу, но деньги переходят сервису только за принятую работу.

  • Фиксированная ценаЦена пакета не меняется после оплаты.
  • Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
  • Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
  • Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
  • Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
  • Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Как это работает →

Вопросы и ответы

Он сохранит вложения из старых писем?

Да, из любых писем, подходящих под поиск, какими бы старыми они ни были. Большой объём разбирается частями за несколько запусков, потому что каждый запуск ограничен примерно шестью минутами.

Он удалит вложения из Gmail?

Нет. Письма остаются как есть, вместе с вложениями; скрипт только сохраняет копии на Диск и ставит метку.

Он может сохранять на общий диск?

Да, в любую папку, куда вы можете добавлять файлы, в том числе на общие диски в Google Workspace.

Вы получите доступ к почте или Диску?

Нет. Скрипт вы добавляете в своём аккаунте и сами даёте ему доступ. Вашу почту и файлы мы не видим.

Не нашли ответ?

Пакеты