Scripts MikroTik: envoi de notifications et de fichiers par courrier électronique (fonction)

Une autre option de notification par les appareils MikroTik consiste à envoyer des notifications par e-mail.

Exemple d'e-mail avec l'appareil MikroTik
Exemple d’e-mail avec l’appareil MikroTik

Pour configurer, vous avez besoin des paramètres SMTP de votre serveur de messagerie. Si le serveur de messagerie utilise l’authentification à deux facteurs, utilisez la clé d’application au lieu du mot de passe (généralement répertorié dans le service d’assistance du service de messagerie).

? Si vous avez l’adresse IP du serveur SMTP et qu’elle ne change pas, spécifiez-la dans le paramètre server. Si vous disposez d’un nom de domaine de serveur SMTP avec une adresse IP dynamique, autorisez MikroTik à résoudre le nom de domaine en une adresse IP à l’aide de la construction [: resolution « smtp.mail.com »].

Article dans d’autres langues:
?? – MikroTik Scripts: Sending Notifications and Files to Email
?? – Scripts MikroTik: Envío de notificaciones y archivos por correo electrónico
?? – MikroTik Скрипты: Отправить письмо и файл на почту
?? – MikroTik-Skripte: Senden von benachrichtigungen und daten an E-mails
?? – MikroTik-scripts: e-mail en bestand naar e-mail verzenden (functie)

Envoyer un e-mail depuis MikroTik (option simple)

Un script pour envoyer un e-mail et un fichier joint au courrier spécifié.

Script d’une ligne:

/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"

Script multi-lignes (meilleure lisibilité):

/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"

Envoyer un e-mail depuis MikroTik (fonction)

Si vous utilisez l’envoi de notifications par e-mail à partir de nombreux scripts, je recommande de séparer le script entre la fonction « Envoyer un e-mail » et le script « Appeler la fonction pour envoyer un e-mail ».

? Attention : dans RouterOS v7, la syntaxe du paramètre tls a changé, donc deux versions de la fonction se trouvent ici.

Fonction « Envoyer un e-mail » pour RouterOS v7

Créons un script:

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

Code de script:

# 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;

Fonction « Envoyer un e-mail » pour RouterOS v6

Créons un script:

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

Code de script:

# 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;
Scripts MikroTik: envoi de notifications et de fichiers par courrier électronique

Calling up the « Send mail » function

Nous appelons une fonction nommée SendEmailFunction à partir du script SendEmailCall.

Créez un nouveau script SendEmailCall:

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

Spécifiez les paramètres à transmettre à la fonction principale:

  • SendTo – adresse postale;
  • Subject – sujet du message;
  • MessageText – texte du message;
  • FileName – est le nom du fichier (facultatif).

Code de script:

# 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;
Envoyer un e-mail de MikroTik

? Comment envoyer un e-mail ou un fichier à partir d’un appareil MikroTik a été abordé dans cet article. J’espère que vous pouvez désormais envoyer des notifications à partir d’appareils MikroTik par e-mail. Cependant, si vous rencontrez des problèmes lors de la configuration, n’hésitez pas à écrire dans les commentaires. J’essaierai d’aider.

Le script est vérifié: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stable).

Laisser un commentaire