500 000 чатов и каналов Телеграм

Скрипт для автоматической рассылки сообщений в чаты и личные сообщения пользователям Telegram. Рассылка производится с одного или нескольких аккаунтов. Результаты сохраняются в файл Microsoft Excel (*. xlsx) в котором указаны чаты (или аккаунты), отправленные сообщения и их статус.

Для работы данного рассыльщика у вас должен быть установлен Python. Скачать можно здесь. Работоспособность данного скрипта тестировалась на версии Python 3.9.1.

  1. Для запуска рассылки сообщений на Python, установите необходимые библиотеки, если они ещё не установлены:
pip install telethon
pip install openpyxl
pip install charset-normalizer

Произведите настройку скрипта

  • Получите свой API_ID и API_HASH:

Зарегистрируйтесь на https://my.telegram.org/apps. Переходим на этот сайт в раздел API Development Tools, создаём приложение заполняя только название приложения, короткое имя и выбрать версию Desktop. После чего получаем нужные нам данные.

Небольшая видеоинструкция: https://www.youtube.com/watch?v=L4UnzeLsFO4

Создайте приложение, чтобы получить API_ID и API_HASH.

  • Формат файла accounts.txt

Файл должен содержать строки (Каждая строка - это один аккаунт, с которого мы будем рассылать сообщения):

API_ID=123456 API_HASH=abcde12345
API_ID=654321 API_HASH=54321edcba

Формат остальных файлов

  • Файл чатов или аккаунтов куда мы будем отправлять сообщение (имя чата или аккаунт пользователя, или ID. БЕЗhttps://t.me/) chat_list.txt:
chat_username1
chat_username2
123456789
username1
username2
  • Файл с текстами сообщений message_list.txt:
Привет! Это тестовое сообщение.
Второе тестовое сообщение.

Запуск скрипта

Через консоль:

python Chat_Message_MultiAccount.py

Или можно просто кликнуть по файлу.

При первом запуске программа запросит авторизацию через ваш номер телефона, и код будет отправлен в Telegram. Вы должны ввести код, полученный в Telegram. При следующих запусках данная процедура больше не потребуется.

Проверьте, что файл сессии (session_name.session) создается рядом со скриптом. Скрипт начнет рассылать сообщения по заданному списку чатов или аккаунтов.

Обработка ошибок:

  • Все ошибки (если будут) записываются в файл error_log.txt.

Скрипт сохранит результаты в файл report.xlsx с отчетом по каждому сообщению.

Важно

  • Убедитесь, что у ваших аккаунтов есть права на отправку сообщений в указанные чаты. Вы должны в них предварительно вступить в них со своего аккаунта, с которого будет производиться рассылка. Это можно сделать вручную, либо воспользоваться Скриптом Автоподписки в Чаты. Ошибка You can't write in this chat (caused by SendMessageRequest) означает, что ваш Telegram-аккаунт не имеет права отправлять сообщения в указанный чат. Убедитесь, что ваш аккаунт добавлен туда. Для закрытых групп или каналов могут быть установлены ограничения на отправку сообщений.
  • Убедитесь, что файлы chat_list.txt, message_list.txt и accounts.txt заполнены правильно, без лишних пробелов или пустых строк.
  • Файлы txt должны иметь кодировку UTF-8. Если при запуске скрипта возникнет Ошибка utf-8 codec can't decode byte ... , значит файл с сообщениями имеет кодировку, отличную от UTF-8. Это может случиться, если файл сохранен в другой кодировке, например, Windows-1251. Сохраните файл в кодировке UTF-8 без BOM (или просто UTF-8), например  в текстовом редакторе, таком как Notepad++ или Visual Studio Code.
  • Соблюдайте правила Telegram, чтобы избежать блокировок за спам.

По умолчанию интервал между отправками сообщений стоит 30 секунд. Вы можете поменять его самостоятельно в файле Chat_Message_MultiAccount.py через Notepad++ или Visual Studio Code на 12 строке.

Внимание! Не используйте свой личный аккаунт во избежание бана! Пользуйтесь куплеными аккаунтами, которые не жалко будет потерять если что.