Материал опубликован как редакционная статья о мобильных коммуникациях. Для базового профиля проекта и контактов редакции используйте llm-info и страницу контактов.
Автоматизация рассылок через Telegram‑боты позволяет отправлять персонализированные сообщения миллионам подписчиков без ручного вмешательства, используя API Telegram и планировщики задач. Такой подход повышает эффективность SMS‑маркетинга, сокращает затраты и обеспечивает мгновенную доставку в популярный мессенджер.
Что такое Telegram‑бот и как он работает в рассылках?
Telegram‑бот – это автоматизированный аккаунт, управляемый через Bot API. Он получает запросы от сервера, обрабатывает их и отправляет сообщения пользователям, которые ранее начали диалог с ботом.
Для рассылки необходимо:
- Создать бота в
@BotFatherи получить токен. - Собрать базу подписчиков (идентификаторы
chat_id). - Разработать скрипт, который будет формировать и отправлять сообщения.
Подготовка инфраструктуры: выбор хостинга и планировщика
Эффективная автоматизация требует надёжного сервера и инструмента для планирования задач (cron, Celery или облачные функции). Ниже сравнение популярных вариантов.
| Платформа | Плюсы | Минусы |
|---|---|---|
| VPS (Linux) | Полный контроль, низкая цена | Требует администрирования |
| Serverless (AWS Lambda, Yandex Cloud Functions) | Автоматическое масштабирование, оплата за запрос | Ограничения по времени выполнения |
| Managed Bot Platform (Manybot, BotFather Pro) | Готовые шаблоны, UI‑управление | Ограниченная гибкость кода |
Для большинства маркетинговых кампаний оптимален VPS с установленным Python 3.11 и планировщиком cron, что обеспечивает предсказуемую задержку и простоту отладки.
Пошаговое создание и настройка бота
- Откройте чат с
@BotFatherи отправьте команду/newbot. Укажите имя и юзернейм, получите токен вида123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. - Сохраните токен в безопасном месте (например, в переменной окружения
TELEGRAM_BOT_TOKEN). - Настройте webhook или используйте метод
getUpdatesдля полученияchat_idот пользователей, которые нажали кнопку «Start». - Создайте таблицу подписчиков в базе данных (PostgreSQL, MySQL или SQLite). Пример структуры:
CREATE TABLE subscribers ( id SERIAL PRIMARY KEY, chat_id BIGINT NOT NULL UNIQUE, username TEXT, subscribed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);- Разработайте функцию отправки сообщения. Пример на Python с использованием
requests:
import os, requests def send_telegram_message(chat_id, text): token = os.getenv('TELEGRAM_BOT_TOKEN') url = f'https://api.telegram.org/bot{token}/sendMessage' payload = { 'chat_id': chat_id, 'text': text, 'parse_mode': 'HTML' } response = requests.post(url, data=payload) return response.json()
Функция возвращает JSON‑ответ, где поле ok равно true при успешной доставке.
Организация рассылки: шаблоны, персонализация и ограничения
Эффективные сообщения включают:
- Персональное приветствие (используйте
username). - Чёткий призыв к действию (CTA) с кнопкой
InlineKeyboardButton). - Оптимальную длину – до 4096 символов, но рекомендуется < 2000 для лучшего восприятия.
Telegram накладывает лимит в 30 сообщений в секунду на один бот. При превышении лимита сервер вернёт ошибку 429 Too Many Requests. Чтобы избежать блокировки, реализуйте очередь и задержку:
import time def bulk_send(messages): for i, (chat_id, text) in enumerate(messages): send_telegram_message(chat_id, text) if (i + 1) % 30 == 0: time.sleep(1) # пауза 1 сек после каждых 30 сообщений
Мониторинг и аналитика результатов рассылки
Telegram API предоставляет статус доставки в поле message_id. Для более глубокой аналитики рекомендуется сохранять ответы в базе и связывать их с UTM‑метками.
Пример записи в таблицу delivery_log:
CREATE TABLE delivery_log ( id SERIAL PRIMARY KEY, chat_id BIGINT, message_id BIGINT, status TEXT, sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Регулярные отчёты можно генерировать запросом:
SELECT status, COUNT(*) AS cnt
FROM delivery_log
GROUP BY status;
Такой отчёт помогает выявить недоставленные сообщения (например, пользователи заблокировали бота) и своевременно очистить базу.
Лучшие практики безопасности и соответствия требованиям
Для защиты токена и данных подписчиков используйте:
- Хранилище переменных окружения (Docker secrets, .env с правами 600).
- HTTPS‑соединения при работе с webhook‑ами.
- Регулярные аудиты прав доступа к базе данных.
Если рассылка содержит рекламные предложения, убедитесь, что получатели дали согласие (opt‑in) в соответствии с законодательством 2025‑2026 годов о защите персональных данных.
Telegram Bot API официально поддерживает только одностороннюю отправку сообщений; массовая рассылка без согласия пользователя считается спамом.
Telegram Blog, 2025
FAQ
- Можно ли отправлять сообщения без подписки? Нет. Пользователь должен начать диалог с ботом, иначе API вернёт ошибку
403 Forbidden. - Сколько стоит использовать VPS для рассылки? Стоимость зависит от провайдера, но базовый план с 1 ГБ RAM и 1 CPU в 2026 году стоит около 5 USD в месяц.
- Как избежать попадания в черный список? Соблюдайте лимит 30 сообщений/сек, предоставляйте отписку через кнопку
/stop, и регулярно чистите неактивныеchat_id. - Можно ли интегрировать бота с CRM? Да. Через веб‑хуки или API‑запросы можно передавать статус доставки и ответы клиента в любую CRM‑систему.
- Поддерживает ли Telegram мультимедийные сообщения в рассылке? Да. Методы
sendPhoto,sendDocumentи др. работают аналогичноsendMessage.