Как стать автором
Обновить

Почта для домена в Telegram

Время на прочтение2 мин
Количество просмотров13K

Дважды начинал эту заметку ибо откровений и контента мало. Решая личную проблему переезда входящей почты с Yandex 360, оказалось, что бесплатных парковок "на западе" не имеется. Zoho как альтернатива, определенно, хорош, но 90 центов за домен в месяц для десятка доменов с сотней текстовых входящих показалось избыточным. На коленке был собран wizard, связывающий SendGrid и Telegram вместе.

Компоненты

Среди найденных почтовых сервисов, предлагающих Inbound Parse - SendInBlue, MailChimp, MailGun и SendGrid - быстрее всего получилось с SendGrid, хотя для хобби-проектов предпочитаю первый. SendInBlue предлагают весьма широкий бесплатный план до 300 емейлов в сутки и не докучают рекламой. Но вот с их Inbound не срослось. Возможно, что-то недочитал или недонастроил.

Telegram Bot API прекрасен и прост как валенок. Создать нового бота и добавить ему wеbhook - дело нескольких минут. Ранее уже имелся чат для алертов и всяких системных сообщений. Поэтому, все что было нужно - это конвертировать JSON от SendGrid в сообщение, понятное Telegram. Вложения не ожидались, поэтому их обработка была отложена навсегда.

Третий ингредиент - домен. На него SendGrid будет пересылать входящие, а Telegram - ответы на сообщения и команды от бота. Подойдет любой хост доступный публично, но за прекрасный Viaduc de Millau отдать 3 евро в зоне OVH было не жалко.

Wizard

На первом шаге мастер просит указать идентификатор чата или группы Telegram. Идентификатор в клиенте не виден, но бот любезно его сообщит по команде /i. Наличие в чате бота проверяется перед следующим шагом.

На втором шаге мастер просит создать пять записей в DNS зоне. Четыре из них для интеграции с SendGrid, и одна для хранения идентификатора чата. Он на всякий случай шифруется. После добавления записей некоторое время придется подождать. В принципе, на этом шаге настройка закончена.

Третий шаг помогает убедиться, что все работает. Тестовое текстовое сообщение отсылается в SendGrid по API, затем парсится и отсылается на хост в контроллер, который передает его дальше в чат Telegram. Настройка Inbound Parse не выполняет фильтрацию спама, поэтому входящие должны поступать отовсюду.

Все компоненты смешаны на умирающем PHP и выложены на GitHub. Как явапоклонник, предпочитаю прототипировать в Symfony. При всех равных, MVC c Bootstrap в Symfony создается быстрее чем с Thymeleaf раза в два. Конструктивная критика приветствуется. Happy coding!

Теги:
Хабы:
Всего голосов 21: ↑16 и ↓5+11
Комментарии17

Публикации

Истории

Работа

PHP программист
147 вакансий

Ближайшие события