Практика работы с Telegram

Бесплатный Telegram-бот рассылки на Python: подписка и очередь

Материал · Редакционная проверка текста: · Как проверяем материалы

Готовый учебный пример бота уведомлений: явная подписка, отписка, расписание, журнал отправок и обработка повторов. Исходный код можно скачать.

Первоначальная инструкция: сентябрь 2026. Даты снимков и отдельных проверок указаны в материале.

Что получится после запуска#

Собственный бот отправляет текстовые уведомления людям, которые включили подписку командой /subscribe. Владелец готовит текст в файле, выбирает время и ставит кампанию в локальную очередь. Пример подходит для новостей сообщества, напоминаний об эфире и обновлений продукта.

Это отдельный Python-проект. Для работы не нужна подписка Telecobra, но нужен свой бот и постоянно работающий компьютер или сервер. Веб-кабинет, вложения, редактор писем и готовый облачный хостинг в пример не входят.

Скачать Python-примеры с README и лицензией MIT →

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

Первый запуск и контрольный подписчик#

  1. Создайте бота через BotFather и сохраните токен в переменной среды TELEGRAM_BOT_TOKEN. Не вставляйте токен в статью, общий репозиторий или скриншоты.
  2. Установите Python 3.11 или новее. Распакуйте архив в отдельную папку, скопируйте config.example.json в config.json.
  3. Выполните init, затем run. Вторая команда начинает получать события и доставлять сообщения.
  4. Откройте диалог со своим ботом: отправьте /start, затем /subscribe. Одна команда /start не включает рассылку.
python community_bot.py init
python community_bot.py run

Для проверки достаточно одного вашего тестового подписчика. Команда status показывает число активных подписчиков и очередь без сетевой отправки.

Как поставить рассылку на время#

Создайте notice.txt в UTF-8. Укажите собственную будущую дату с часовым поясом. Сначала посмотрите задание без --queue, затем повторите команду с этим флагом.

python community_bot.py broadcast --id news-001 --text-file notice.txt --at "2026-09-20T12:00:00+03:00"
python community_bot.py broadcast --id news-001 --text-file notice.txt --at "2026-09-20T12:00:00+03:00" --queue
python community_bot.py status

ID кампании уникален: повтор news-001 не создаёт вторую кампанию. Получатели фиксируются при добавлении в очередь; подписавшиеся позже не попадут в старое задание. При остановленном процессе отправки ждут следующего запуска. Прошедшая дата означает отправку при ближайшей обработке очереди.

Отписка, ошибки и повторные попытки#

СобытиеПоведение примера
Подписчик отправил /stopНовые рассылки отключены, ожидающие сообщения ему отменяются. Уже отправленное сообщение не отзывается.
Telegram ответил 429Вся очередь ждёт retry_after. Нельзя считать заданную паузу гарантированным лимитом Telegram.
Telegram вернул message_idСтатус sent. Это подтверждение приёма API, а не прочтения человеком.
Тайм-аут или обрыв после отправкиСтатус unknown: автоматического повтора нет, поскольку сообщение могло дойти.
Процесс прервался во время отправкиПосле восстановления незавершённая отправка тоже получает unknown.

Запускайте один worker на одну базу. Не удаляйте SQLite для повторного старта: в ней подписки и история. Порядок восстановления после аварии и файл блокировки описаны в README.

Что проверено и как принять свой запуск#

В учебном проекте выполнены локальные проверки с подменёнными ответами API: согласие, отписка, повторы update_id и кампании, расписание, 429, тайм-аут и восстановление. Реальная рассылка из этой статьи не запускалась.

  1. Получите одно уведомление на своём аккаунте и сопоставьте его с sent в журнале.
  2. Поставьте второе на будущее, отправьте /stop и убедитесь, что оно отменено.
  3. Перезапустите процесс с той же базой: уже отправленное не должно отправляться повторно.
  4. При unknown сначала проверьте диалог. Пример не обещает математически точную доставку ровно один раз.

Источники и документация#

Одна платформа · разные задачи

Подписка Telecobra

Соберите инструменты для работы с Telegram в одном кабинете. Сроки доступа, цены и условия — на странице подписки.

В этой инструкции описана только часть возможностей платформы. Полный список доступен в разделе функций.

Подписка и состояние очереди#

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

Демонстрационный код следует запускать на разрешённых тестовых получателях. Не считайте успешную отправку доказательством прочтения. Если процесс перезапустился, проверьте сохранение очереди и риск повторов; такие свойства зависят от реализации и не возникают автоматически из названия библиотеки.

Практический разбор добавлен 8 октября 2026 года.

БЕСПЛАТНЫЙ TELEGRAM-БОТ РАССЫЛКИ НА PYTHON — тематическая обложка с персонажем Telecobra
Тематическая иллюстрация к материалу; не снимок интерфейса.

Редакционная проверка основного текста и FAQ: 8 октября 2026 года. Документы для сверки: core.telegram.org/bots/api · core.telegram.org/bots/faq. Учебные сценарии не являются результатами клиентов.