Des alertes mails via SMTP

L'objectif

Lorsqu'un de mes script découvre une anomalie quelconque, je souhaite en être notifié via mail. Pour répondre à ce besoin, nous allons installer et configurer postfix.

Vu que l'on souhaite juste recevoir des notifications et non pas envoyer de mails, on n'a pas besoin d'ouvrir de ports car dans notre cas postfix se positionne en tant que client.

Postfix

On doit installer deux outils nécessaire dont mailutils pour envoyer des mails en ligne de commande et postfix pour communiquer avec les autres serveur mails sur Internet.

apt-get install mailutils postfix

Une fenêtre va s'ouvrir pour indiquer le mode de configuration, choisissez Site Internet :

On définit ensuite un nom de courrier qui sera utilisé par postfix pour s'authentifier à d'autres serveurs mails. Il faut renseigner un nom de domaine valide qui permet de prouver au minimum une certaine authenticité du mail

On modifie le hostname de la machine :

nano /etc/hostname
fusing.no-ip.org

On applique cette modification :

reboot

Sachant que le mail sera envoyé depuis une box free, on peut ajouter un relais dans le fichier de configuration main.cf

nano /etc/postfix/main.cf
relayhost = smtp.free.fr

Puis on redémarre le service pour que la modification soit pris en compte.

service postfix restart

Essayons d'envoyer un mail !

ifconfig | mail -s "test" toto@sfr.fr

On vérifie si le mail à bien été envoyé depuis le fichier de journalisation :

cat /var/log/mail.log
Dec 25 04:00:36 nas postfix/pickup[627]: EFE7B77: uid=0 from=<root@fusing.no-ip.org>
Dec 25 04:00:36 nas postfix/cleanup[697]: EFE7B77: message-id=<20161225030036.EFE7B77@nas>
Dec 25 04:00:37 nas postfix/qmgr[628]: EFE7B77: from=<root@fusing.no-ip.org>, size=971, nrcpt=1 (queue active)
Dec 25 04:00:37 nas postfix/smtp[699]: connect to smtp.free.fr[2a01:e0c:1::25]:25: Network is unreachable
Dec 25 04:00:38 nas postfix/smtp[699]: EFE7B77: to=<toto@sfr.fr>, relay=smtp.free.fr[212.27.48.4]:25, delay=1.6, delays=0.43/0.02/0.8/0.34, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 6A5A1200351)
Dec 25 04:00:38 nas postfix/qmgr[628]: EFE7B77: removed

ssmtp

Admettons que nous avons déjà une instance MTA (Mail Transfer Agent) tel qu'un postfix dans un conteneur. ssmtp va permettre d'envoyer les mails vers celui-ci.

apt install ssmtp 

Voici un exemple de fichier de configuration :

cat /etc/ssmtp/ssmtp.conf
root=user@domaine.com
mailhub=127.0.0.1:25
hostname=localhost
FromLineOverride=YES

C'est tout!