Otra opción de notificación por parte de dispositivos MikroTik es enviar notificaciones por correo electrónico.
Para configurar, necesita los parámetros SMTP de su servidor de correo. Si el servidor de correo usa autenticación de dos factores, use la clave de la aplicación en lugar de la contraseña (generalmente aparece en la mesa de ayuda del servicio de correo).
? Si tiene la dirección IP del servidor SMTP y no cambia, especifíquela en el parámetro server. Si tiene un nombre de dominio de servidor SMTP con una IP dinámica, permita que MikroTik resuelva el nombre de dominio en una dirección IP usando la construcción [: resolve «smtp.mail.com»].
Artículo en otros idiomas:
?? – MikroTik Scripts: Sending Notifications and Files to Email
?? – MikroTik Скрипты: Отправить письмо и файл на почту
?? – Scripts MikroTik: envoi de notifications et de fichiers par courrier électronique
?? – MikroTik-Skripte: Senden von benachrichtigungen und daten an E-mails
?? – MikroTik-scripts: e-mail en bestand naar e-mail verzenden (functie)
Enviar correo electrónico desde MikroTik (opción simple)
Un script para enviar un correo electrónico y un archivo adjunto al correo especificado.
Script de una línea:
/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"
Secuencia de comandos de varias líneas (mejor legibilidad):
/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"
Enviar correo electrónico desde MikroTik (función)
Si utiliza el envío de notificaciones por correo electrónico desde muchas secuencias de comandos, le recomiendo que separe la secuencia de comandos en la función «Enviar correo electrónico» y la secuencia de comandos «Llamar a la función para enviar correo electrónico».
? Atención: en RouterOS v7, la sintaxis del parámetro tls ha cambiado, por lo que aquí se encuentran dos versiones de la función.
Función «Enviar email» para RouterOS v7
Creemos un script:
[System] -> [Scripts] -> [+] -> [Name: SendEmailFunction] -> [Policy: Don't require permissions]
Código de secuencia de comandos:
# 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 "yes";
# Main script code
/tool e-mail send to=$SendTo server=$SmtpServer port=$SmtpPort tls=$UseTLS user=$SendFrom password=$PasswordMail from=$SendFrom subject=$Subject body=$TextMail file=$FileName;
Función «Enviar email» para RouterOS v6
Creemos un script:
[System] -> [Scripts] -> [+] -> [Name: SendEmailFunction] -> [Policy: Don't require permissions]
Código de secuencia de comandos:
# 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;
Acceso a la función «Enviar email»
Llamamos a una función llamada SendEmailFunction del script SendEmailCall.
Cree un nuevo script SendEmailCall:
[System] -> [Scripts] -> [+] -> [Name: SendEmailCall] -> [Policy: read, write, policy, test]
Especifique los parámetros que se pasarán a la función principal:
- SendTo – dirección de envío de correo;
- Subject – asunto del mensaje;
- MessageText – texto del mensaje;
- FileName – es el nombre del archivo (opcional).
Código de secuencia de comandos:
# 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;
? En este artículo se discutió cómo enviar un correo electrónico o un archivo desde un dispositivo MikroTik. Espero que ahora puedas enviar notificaciones desde dispositivos MikroTik por correo electrónico. Sin embargo, si tiene algún problema durante la configuración, no dude en escribir en los comentarios. Trataré de ayudar.
Se verifica el script: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (estable).
hola . me da error TLS handshake failed. como lo podre solucionar?
Hola amigo, ante todo felicidades por los scripts, son muy útiles.
Por otro lado comentarle que la función email ya no funciona con la ultima actualización de routerOS v7.1 quizás por la nueva sintaxis.
Agradecería si lo puedes actualizar para que funcione gracias.
Hola amigo, muchas gracias!
Intentaré tener esto en cuenta.
Hola amigo, espero que tu pregunta siga siendo relevante. Sí, actualizaron la sintaxis del parámetro tls. Agregué una versión del script para RouterOS v7.
Excelentes aportes.
Sabe que he seguido al pie de la letra la implementacion de envio de e-mail con funcion y no logro que el mismo funcione o corra.
Las pruebas las he realizado en el siguiente equipo:
Router Modelo: 951Ui-2nD
Version: 6.48.3 Stable