Email 2 telegram bot как настроить
Общие сведения
Что могут делать боты?
Вот несколько примеров использования ботов:
- Интеграция с другими сервисами. Например, бот может отправлять комментарии или управлять «умным домом». Или, например, отправлять вам уведомления при совершении каком-то действия или события (Примеры: GitHub Bot, Image Bot).
- Утилиты и инструменты. Бот может отображать погоду, переводить тексты или предупреждать о предстоящих событиях по вашему запросу (Например: бот опросов).
- Одно- и многопользовательские игры. Бот может поиграть с вами в шашки или шахматы, проводить викторины и так далее. (Пример: Trivia bot).
- Социальные сервисы. Бот может находить вам собеседника, основываясь на ваших общих интересах и увлечениях. (Пример: HotOrBot).
- Все, что вам захочется. Бота можно запрограммировать для чего угодно. Разве что посуду они помыть не смогут.
Как работают боты?
Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.
Рекомендуем также ознакомиться с подробным описанием Bot API.
Как создать бота?
Для этого есть. Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.
Чем бот отличается от обычного аккаунта?
Суперспособности
У роботов Telegram есть много уникальных возможностей — например, кастомизированные клавиатуры, дополнительные интерфейсы для команд по умолчанию, внешнее связывание и специальные режимы приватности для групп.
Инлайн-режим
С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.
Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:
Клавиатуры
За более подробной информацией обращайтесь к описанию метода sendMessage.
Команды
Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:
Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:
Если в группе есть несколько ботов, вы можете дописать после команды имя бота, чтобы избежать коллизий в общих командах:
Это происходит автоматически, если вы выбираете команду из списка доступных.
Глобальные команды
Чтобы пользователям было проще работать с ботами, мы просим всех разработчиков реализовывать поддержку нескольких простых команд. В интерфейсе приложений Telegram будут ярлыки (быстрые ссылки) для этих команд.
При попытке начать общение с роботом, пользователь увидит кнопку СТАРТ. На странице профиля бота также будут доступны ссылки Помощь и Настройки.
Режим приватности
Внешнее связывание
Боты имеют механизм внешнего связывания, которые позволяет передать дополнительные параметры при запуске. Например, для передачи авторизационного токена пользователя, чтобы соединить его аккаунт с каким-либо внешним сервисом.
Допустимо использование символов A-Z , a-z , 0-9 , _ и - . Мы рекомендуем использовать base64url для кодирования параметров.
В PAYLOAD будет значение параметра start или startgroup , который был передан в ссылке.
Пример реализации внешнего связывания
BotFather
Создание бота
Напишите команду /newbot , чтобы создать нового робота. BotFather спросит у вас имя нового бота и предложит придумать username.
Имя (name) будет отображаться в контактах и чатах.
Username — короткое имя на латинице, которое используется для упоминаний бота и в ссылках на профиль в telegram.me. Username должен состоять из букв латинского алфавита, подчёркиваний и цифр и быть длиной от 5 до 32 символов. Также имя пользователя обязательно должно заканчиваться на «bot», например: «tetris_bot» или «TetrisBot».
Создание токена
Если вы потеряли или утратили доступ к токену, отправьте команду /token , чтобы сгенерировать новый.
Настройки
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
С одной стороны, исторически сложилось, что многие сервисы в Unix/Linux уведомляют администратора о проблемах через электронную почту.
В качестве примеров можно привести cron, smartd и mdadm.
В самописных фоновых или долго выполняющихся сценариях неудачное завершение также не помешает сопровождать отправкой уведомлений, например:
Разумеется, имея больше одного сервера, такую почту удобнее просматривать не локально, а централизованно.
С другой стороны, надёжная доставка почты в Интернете требует большого количества настроек, без которых письма либо вообще не дойдут до получателя, либо попадут в спам.
С учётом изложенного, имеет смысл не собирать служебную почту в почтовый ящик, а настроить шлюз для доставки в Telegram.
Параметры Telegram:
В Телеграме нам потребуется зарегистрировать бота для отправки и получить token, а также узнать числовой идентификатор получателя (Chat ID).
Здесь проще сослаться на существующую документацию, чем пытаться сочинять свою:
Настройка шлюза:
Гугл находит две готовых реализации:
Обе написаны на Golang. Первую из них мы проверили в работе и остались довольны.
Однако было решено написать вместо неё собственную утилиту, чтобы (а) уменьшить занимаемое на диске место в 10000 раз (с 10,7 мегабайт до 1140 байт) и (б) получить потенциальную гибкость для расширения (например, добавить в дальнейшем поддержку нескольких recipient_email_address=>TgChatId).
Забегая вперёд, имеет смысл отметить, что при выполнении smtp_to_telegram занимает в ОЗУ вдвое меньше места, чем наша утилита на Python (13 мегабайт против 26), хотя отчасти это компенсируется наличием других запущенных Python-утилит (в т.ч. tuned, networkd-dispatcher и т.д.), потому что ОЗУ под значительную часть среды выполнения выделяется системой однократно, независимо от числа использующих её процессов.
Пишем собственный вариант:
Этот файл следует сохранить как /usr/local/bin/smtp2tg и сделать исполняемым:
Чтобы уменьшить и упростить исходный текст, а также повысить безопасность, необходимые для работы параметры передаются не через командную строку, а через переменные окружения SMTP2TG_xx.
Сценарий проверен на совместимость с Python 2.7 и 3.6. Из дополнительных пакетов требуется только python-requests (или python3-requests), который называется одинаково и Debian/Ubuntu, и в CentOS.
При написании пришлось столкнуться со следующими проблемами:
- В отличие от большинства сетевых сервисов, модуль smtpd не позволяет заканчивать строки в запросах сокращённой односимвольной последовательностью "\n" и понимает только полную двухсимвольную "\r\n". Поэтому для тестирования надо запускать netcat с ключом "-C", а socat с флагом "crlf", и только telnet заработает правильно без дополнительных настроек (но потребует явную задержку, потому что без неё закроет сетевое соединение сразу, как только получит EOF из stdin, и не успеет из-за этого принять из сети ответ):
- Python не требует явно объявлять тип, но отказывается автоматически преобразовывать его даже в очевидных ситуациях, поэтому для listen_port и data необходимо ручное преобразование (из str в int и из ByteArray в str соответственно).
- Если в системе включён IPv6 и для localhost в /etc/hosts есть строки "127.0.0.1" и "::1", без параметра SMTP2TG_LISTEN_ADDR сценарий слушает только "::1" без 127.0.0.1
- И самое главное — в стандартной документации метод "process_message" содержит неверный набор параметров — без mail_options и rcpt_options (но эту ошибку успели найти до нас).
Автоматический запуск:
Сервис для systemd будет выглядеть так:
Сохраните его в файл /etc/systemd/system/smtp2tg.service, активируйте и запустите, предварительно создав псевдопользователя:
- useradd -d /nonexistent -s /bin/false -r smtp2tg
- systemctl daemon-reload
- systemctl enable smtp2tg
- systemctl start smtp2tg
- systemctl status smtp2tg
Настройка отправителей почты:
Нам нужен любой консольный клиент (т.е. предоставляющий команду mail) и любой агент доставки почты, умеющий использовать relay:
В Debian/Ubuntu мы предпочитаем для этого следующую связку:
Для CentOS в стандартных репозиториях нет готового пакета dma, но он собран в repo.cdnnow.pro:
В /etc/dma/dma.conf обязаны присутствовать следующие строки:
IP-адрес должен указывать на сервер, на котором запущен smtp2tg. В данном случае рекомендуется использовать именно IP-адрес, т.к. это позволит сохранить работоспособность при проблемах с DNS.
CRM АвтоВебОфис позволяет делать рассылку своим подписчикам и клиентам не только на почту, но и в Telegram. Это существенно расширяет Ваши возможности по охвату и работе со своей базой.
Подключение бота
Для работы с Telegram сначала надо обязательно подключить бота Telegram в АвтоВебОфис.
Если у вас нет бота, то необходимо его создать. Для этого в приложении Telegram ищем бота botfatherTelegram возвращает ссылку на наш новый бот и token.
Подключаем бота к магазину в АвтоВебОфис.
Закрытые группы
В Telegram Вы можете создавать частные и публичные группы. Вы можете создать частную группу, например, для своих учеников. Однако частная группа не является закрытой. В неё можно попасть по ссылке приглашения
Но эта ссылка единая для всех. И вот я делаю рассылку по своим клиентам и даю ссылку-приглашение в группу. Люди добавляются, а там важная информация. Но нехороший клиент может дать ссылку своему другу и тот тоже добавится в группу.
Для таких случаев в АвтоВебОфисе есть механизм закрытых групп. По сути это белый список контактов, которым разрешено подписываться и находиться в группе. ВАЖНО: мы по техническим причинам не можем подписать контакт на группу, это он делает сам по ссылке приглашения. Мы только добавляем/убираем его из белого списка.
Внизу появится ссылка-приглашение, которую необходимо разослать клиентам, чтобы они добавились в группу.
После добавление группы в АвтоВебОфис, можно управлять белым списком(списком контактов, которым разрешено нахождение в группе) Добавить/Убрать контакт из списка можно руками в списке контактов группы
ИЛИ с помощью автоворонок
Как это работает?
Доступ к группе идёт на основе «белых списков» (кому-то разрешено, а кому-то нет).
Чтобы кто-то смог войти в группу и его не выкидывал бот, нужно в этот «белый список» добавить участника. Это можно сделать через автоворонки или вручную
Рассылки в Telegram
Рассылка в Telegram происходит по тем контактам, которые подписаны на бота. Ботов можно выбирать при создании рассылки. Важно: бот не делает рассылку в группу!
Как подписать контакт на бота (привязка Telegram к существующему контакту)
Также в настройках бота есть общая ссылка подписки на бота.
Эта ссылка работает так: - Если на странице refferer (откуда пришел контакт) есть get переменные _aid и _vcaid (они есть на страницах благодарности за подписку на email группу, страницах с просьбой подтвердить подписку), значит это досбор контактных данных, и мы привязываем Telegram к контакту с id = _aid. Иначе создаем новый контакт.
То есть, если разместить общую ссылку для подписки на бота на страницах благодарности за подписку на email группу, страницах с просьбой подтвердить подписку, при подписке на бота id контакта в Telegram будет добавлен в существующий контакт с email.
Важно: при размещении ссылки, следите, чтобы тег ссылки не содержал атрибута target=”_blank” (этот атрибут на телефоне перекинет пользователя из браузера почтового клиента в браузер по-умолчанию, ввиду чего привязка к существующему контакту не сработает)
Привязка почты контакта к существующему контакту с Telegram
Если в базе аккаунта уже есть контакт с Телеграмм, к нему можно добавить почту этого контакта.
Это можно сделать:
Чат-бот — это автоматизированный многофункциональный помощник, который может показывать информацию подписчикам и собирать информацию по запросу согласно заранее подготовленным сценариям.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для Telegram мессенджера или подключить существующий к сервису SendPulse для дальнейшей настройки.
Содержание
Если у вас уже создан бот, пропустите первый пункт и переходите сразу ко второму.
Как создать нового бота в Telegram
Откройте мессенджер Telegram, войдите в вашу учетную запись или создайте новую.
Шаг 1. Введите в поле поиска @BotFather и выберите бота.
Обратите внимание, что у официального бота Telegram будет стоять синий подтверждающий знак возле имени в виде галочки.
Шаг 2. Нажмите «Запустить» для активации бота BotFather.
В ответ вы получите список команд по управлению ботов.
Шаг 3. Выберите или напечатайте и отправьте команду /newbot .
Шаг 4. Дайте имя боту — клиенты увидят это имя при общении с ботом. И никнейм бота — по нему можно будет найти бота в Telegram. Никнейм должен быть уникальным, не повторять существующие в базе и заканчиваться на слово «bot».
Для подключения бота в SendPulse вам понадобится токен. Скопируйте значение токена и перейдите к последнему пункту.
Где найти ключ для уже существующего бота
Шаг 1. Перейдите к боту @BotFather и введите команду /token .
Вы увидите кнопки с созданными ботами.
Шаг 2. Выберите бота, которого нужно подключить.
Скопируйте значение токена.
Как подключить бота в Sendpulse
Перейдите в раздел «Чат-боты» в вашем аккаунте SendPulse. Если ранее у вас не было подключенных каналов, нажмите на кнопку «Подключить каналы». Если же вы уже подключали ботов, перейдите в раздел «Управление ботами».
Затем выберите нужный канал и нажмите на кнопку «Подключить Telegram».
Введите ключ доступа — токен полученный в созданном боте. Нажмите «Подключить».
Вы будете перенаправлены в приложение «Telegram», нажмите на кнопку «Запустить» и вы подпишетесь на своего бота.
Читайте также: