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.
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
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!