Настройка Mailrise для отправки email в Telegram, Discord, Whatsapp и др.
Существует интересный продукт Mailrise, с помощью которого можно email сообщения пересылать в другие каналы связи. В качестве такого канала может выступать любой современный мессенджер: Telegram, Discord, Whatsapp и многие другие. Поддерживаются практически все современные приложения. Но не только они. Помимо мессенджеров поддерживаются и другие продукты, протоколы, технологии.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Введение
Mailrise создан на основе Apprise и поддерживает все каналы уведомлений, что и он. Mailrise поднимается как обычный SMTP сервер. Принимает сообщения и переадресует их в зависимости от настроек в необходимые каналы уведомлений. И речь тут может идти не только об уведомлениях в мессенджеры, смс, пуши и т.д. Например, mailrise может отправить email в формате JSON через HTTP POST запрос. Может в Syslog сделать запись с заголовком и текстом письма, может переслать на другой SMTP сервер. Продукт универсальный.
Насколько я понимаю, основное применение — отправка уведомлений с тех устройств и систем, которые кроме email ничего не умеют отправлять. Какие-нибудь свитчи, принтеры, может ещё что-то.
Установка Mailrise
Покажу на примере, как это работает. Для начала установим Mailrise. Сделать это можно либо через pip, либо запустить в Docker. Я беру второй вариант, поэтому сразу подготовим конфигурационный файл, который мы передадим в контейнер.
Я буду принимать почту и отправлять уведомление в Telegram и Syslog. Для этого готовлю такой конфиг mailrise.conf в формате yaml :
configs: telegram: urls: - tgram://1393668911:AAHtETAKqxUH8ZpyC28R-wxKfvH8WR6-vdNw/211805263 rsyslog: urls: - rsyslog://172.30.245.222
Запускаю контейнер с указанным конфигом:
# docker run -d -p 8025:8025 --restart always -v ~/mailrise/mailrise.conf:/etc/mailrise.conf --name mailrise yoryan/mailrise
Почтовый сервер готов принимать почту на порту 8025. Отправляю тестовое сообщение. Проще всего это сделать через PowerShell:
> send-mailmessage -from "admin@local" -to "Telegram","Rsyslog " -subject "Message from Mailrise" -body "Test Message" -smtpserver 172.30.245.222 -port 8025
В данном случае адреса telegram@mailrise.xyz и rsyslog@mailrise.xyz вымышленные. Имеет значение только название перед @. Оно должно соответствовать названиям конфигов в mailrise.conf. То есть если отправить почту только на telegram@mailrise.xyz, то оповещение придёт только в Telegram. То есть вот так:
> send-mailmessage -from "admin@local" -to "Telegram" -subject "Message from Mailrise" -body "Test Message" -smtpserver 172.30.245.222 -port 8025
Отправка почты в Mailrise
В Linux через консоль с указанием релея отправки проще всего использовать ssmtp. Для этого её надо установить и нарисовать простой конфиг:
# apt install ssmtp
В конфиг /etc/ssmtp/ssmtp.conf пишем:
root=admin@local mailhub=172.30.245.222:8025 hostname=debian12.homelab.local
Отправляем почту через mailrise:
# echo "Test Message" | mail -s "Message from Mailrise" telegram@mailrise.xyz rsyslog@mailrise.xyz
Оповещение прилетит в Telegram и Rsyslog. В последнем будет примерно такая запись в логе:
2024-04-25T14:55:20.717270+03:00 172.17.0.2 - 1 - Message from Mailrise (admin@local): Test Message
Соответственно, можно указать отдельный facility и настроить в rsyslog.conf приём этих уведомлений в отдельный файл.
Подобным образом можно настраивать любой тип уведомлений, которые поддерживает Apprise. По мне так очень простое и функциональное решение. Понятно, что оно не везде нужно. Лишнюю прослойку без нужды не стоит использовать. Но в целом сделано неплохо.
Если нужна аутентификация, то добавить её можно следующими настройками в конфиге mailrise:
smtp: auth: basic: user01: password01
Я проверил работу mailrise. В целом, всё работает. Настраивается легко и быстро. Не нужно помнить API отдельных сервисов, чтобы отправлять туда уведомления. Программа делает всё это за нас. Достаточно заполнить небольшой конфиг для каждого публичного сервиса или локальной службы.
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Qiziqarli malumotlar
Discord, Whatsapp и др., Настройка Mailrise для отправки email в Telegram