253 подписчика

MikroTik Скрипты: Отправить письмо и файл на почту (функция)

326 прочитали

Еще один вариант уведомления устройствами MikroTik — отправка уведомлений на электронную почту.

Пример электронного письма с устройства MikroTik
Пример электронного письма с устройства MikroTik

Для настройки вам понадобится параметры SMTP вашего почтового сервера. Если сервер почты использует двухфакторную авторизацию, используйте ключ приложения вместо пароля (обычно указан в справке).

🔔 Если у вас есть IP адрес SMTP сервера и он не изменяется, укажите его в параметре server. Если у вас есть доменное имя SMTP сервера с динамическим IP, разрешите MikroTik преобразовывать доменное имя в IP адрес, используя конструкцию [:resolve «smtp.mail.com»].

Отправить письмо из MikroTik (простой вариант)

Скрипт отправки письма и вложенного файла на указанную почту.

Скрипт в одну строку:

/tool e-mail send to=destination_mail@mail.com server=[:resolve "smtp.mail.com"] port=465 start-tls=tls-only user="source mail@mail.com" password="Password" from="source mail@mail.com" subject="Subject" body="Simple Text" file="file_for_send.txt"

Скрипт в несколько строк (лучшая читаемость):

/tool e-mail send to=destination_mail@mail.com \
server=[:resolve "smtp.mail.com"] port=465 start-tls=tls-only \
user="source mail@mail.com" password="Password" from="source mail@mail.com" \
subject="Subject" body="Simple Text" \
file="file_for_send.txt"

Отправить письмо из MikroTik (функция)

Если вы используете отправку почтовых уведомлений из множества скриптов, я рекомендую разделить скрипт на функцию «Отправить письмо» и скрипт «Вызвать функцию отправить письмо».

Главная функция «Отправить письмо»

[System] -> [Scripts] -> [+] -> [Name: SendEmailFunction] -> [Policy: Don't require permissions]

Код скрипта:

# Variables
:local SendFrom "source_mail@mail.com";
:local PasswordMail "Password";
:local SmtpServer [:resolve "smtp.mail.com"];
:local UserName "source_mail@mail.com";
:local SmtpPort 465;
:local UseTLS "tls-only";

# Main script code
/tool e-mail send to=$SendTo server=$SmtpServer port=$SmtpPort start-tls=$UseTLS user=$SendFrom password=$PasswordMail from=$SendFrom subject=$Subject body=$TextMail file=$FileName;

Скрипт отправки уведомления или файла с устройства MIkroTik на email. Отправить письмо или вложенный файл c MikroTik - легко!-2

Вызов функции «Отправить письмо»

[System] -> [Scripts] -> [+] -> [Name: SendEmailCall] -> [Policy: read, write, policy, test]

Укажите параметры для передачи в главную функцию:

  • SendTo — адрес отправки почты;
  • Subject — тема письма;
  • MessageText — текст письма;
  • FileName — имя файла (необязательный параметр).

Код скрипта:

# Variables
:local DeviceName [/system identity get name];
:local Time [/system clock get time];
:local Date [/system clock get date];

:local SendTo "destination_mail@mail.com";
:local Subject "\F0\9F\9F\A2 INFO: $DeviceName [$Date $Time]";
:local MessageText "This informational message indicates the successful execution of the script on device $DeviceName";
:local FileName "some_file.txt";

# Main script code
:local SendEmail [:parse [/system script get SendEmailFunction source]];
$SendEmail SendTo=$SendTo TextMail=$MessageText Subject=$Subject FileName=$FileName;

Скрипт отправки уведомления или файла с устройства MIkroTik на email. Отправить письмо или вложенный файл c MikroTik - легко!-3

Источник и задать вопросы по отправке почты с MikroTik можно здесь: https://mhelp.pro/ru/mikrotik-skripty-otpravit-pismo-i-fayl-na-pochtu/

Скрипт отправки уведомления или файла с устройства MIkroTik на email. Отправить письмо или вложенный файл c MikroTik - легко!-4