Дмитрий Гапонов › Nautisss
Сайты руками, боты и парсеры на Python, чертежи в AutoCAD
Рейтинг
16 250
№ 60 в каталоге
Отзывы
Профессионализм
10/10
Коммуникация
10 /10
На сайте с
2025 года
Юридический статус
Самозанятый
Безопасная сделка
Деньги списываются после приёмки

Сводный отчёт по доставляемости писем на 400 доменов в Google Таблице - собирается сам каждое утро

Описание

У заказчика несколько сотен доменов, с которых идут рассылки. Почтовый сервис показывает статистику по каждому отдельно - зайти, выбрать домен, посмотреть. Просмотреть так четыре сотни доменов нереально.

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

Плюс сами домены сначала надо было подключить к почтовому сервису - добавить, получить код подтверждения, прописать DNS-запись у регистратора и дождаться, пока сервис подтвердит права. По сотне доменов на почтовый ящик, ящиков несколько, и каждый ящик заводится отдельно.

Решение

Статистику отдаёт API почтового сервиса, и за один запрос он отдаёт сразу все домены ящика, если не указывать домен. На этом и построен сборщик.

Добавление домена API не умеет, только руками через форму. Сотню доменов гнал запросами со страницы личного кабинета, с живой сессией. Форма добавления, со страницы проверки снимается код подтверждения, дальше запись в панель регистратора и запрос на подтверждение с опросом задачи до успеха. Подряд без пауз сервис отдаёт 429 - первые сто запросов принесли 81 пустышку, лечится паузой в полторы секунды.

Массовая ручка панели регистратора не подошла. Она ставит одно значение на много доменов, а код подтверждения у каждого домена свой, поэтому записи добавлял по одной.

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

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

Заголовок авторизации у этого API нестандартный, с привычным Authorization приходит 403. Проверять тут надо не код ответа, а само значение.

Заливку переделал после замечания заказчика. Сначала строка красилась целиком по доле доставки, стало - каждая доля красится своим цветом.

Результат

Четыре сотни доменов подключены и подтверждены, контрольный проход по списку доменов показал ноль неподтверждённых. Таблица собирается сама каждое утро и догружает пропущенные дни. Заказчик работу принял. Отдельно проверил разбор долей на подставном ответе до того, как туда попали живые данные, чтобы цвета не врали на первом же прогоне.

Оценили проект:

Другие проекты

Все проекты →
Архитектура и Дизайн интерьеров Перенос обмеров квартиры в RemPlanner: план с размерами, вентшахтами и балконом
Перенос обмеров квартиры в RemPlanner: план с размерами, вентшахтами и балконом
23
Веб-разработка и IT Сайт жилого комплекса с расчётом инсоляции: показываем, сколько минут солнца попадёт в каждую квартиру
Сайт жилого комплекса с расчётом инсоляции: показываем, сколько минут солнца попадёт в каждую квартиру
24
Веб-разработка и IT Защита формы заявок от бота без капчи - одноразовый токен, приманка и отсечка по времени
Защита формы заявок от бота без капчи - одноразовый токен, приманка и отсечка по времени
24
Инженерия и Проектирование Восстановление трёх планов этажей в DWG: полилинии, размерные цепочки, блоки санузлов
Восстановление трёх планов этажей в DWG: полилинии, размерные цепочки, блоки санузлов
28