Linux: envoyer un mail en ligne de commande

Il est parfois utile d'envoyer automatiquement des alertes ou log par mail. Afin de scripter l'envoie, on doit paramétrer un client mail et un relais smtp.

d'abord installer le necessaire:

sudo apt install mailutils

Configurer le SMTP de postfix

sudo vi /etc/postfix/main.cfg

Pour fixer le sender (From)

sender_canonical_maps = static:webmaster@beemoon.fr

le SMTP

relayhost = smtps.gmail.com:587

L'authentification SMTP

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password

Créer la base de donnée pour l'authentification SMTP

sudo vi /etc/postfix/password

le format ddu fcihier

nom_du_smtp login:password

example

smtps.gmail.com toto:mdpToto23!1&

on sécurise le fichier

sudo chown root:root /etc/postfix/password
sudo chmod 600 /etc/postfix/password

On génère la base de donnée

sudo postmap hash:/etc/postfix/password

Recharge postfix

/etc/init.d/postfix reload

Tester un envoie à webmaster@beemoon.fr

echo test| mail -s "Login-Alert on `hostname`" webmaster@beemoon.fr

En cas de non réception du mail on verifie les logs

sudo tail -f /var/log/mail.log

Et voilà on peut automatiser l'envoie des logs ou alertes!

Dernière modification : le 2025/03/06