Envoi de mail avec Nullmailer
I. Présentation
L'envoi de mail est un point incontournable dans l’administration d’un serveur. Les outils de sécurisations ou de monitoring que nous mettons en place ont besoin d’émettre des alertes ou des rapports. Il existe de nombres outils permettant l'envoi d'email, les plus connus sont Sendmail et Postfix. Cependant, ils sont lourds et compliqués à mettre en place. Je vous propose donc d'utiliser Nullmailer, un petit logiciel très peu gourmand pour l'envoi de notification sur votre boîte mail.
II. Installation et configuration
Au préalable il faut supprimer exim4 livré sur les distributions Debian :
aptitude purge exim4 aptitude purge exim4-base aptitude purge exim4-config aptitude purge exim4-daemon-light
Puis installer le paquet nullmailer :
aptitude update aptitude install nullmailer
Une fois le paquet téléchargé le programme de configuration se lance automatiquement et va vous demander :
- Nom de courrier de votre système : test_nom_serveur
Il s'agit de l'identifiant de la machine qui enverra les mails. A tout moment vous pourrez modifier la valeur via le fichier /etc/mailname.
- et la Machine relais : smtp.gmail.com smtp --port=25 --auth-login [email protected] --pass=xxxxx --starttls
Remarque : -- correspond à 2 tirets
Le fichier est stocké dans /etc/nullmailer/remotes (possibilité de le modifier à tout moment).
Pour ma part, vu que dans ce fichier il contient le mot de passe en clair du compte de la messagerie que j'utilise pour l'envoi d'email, j'ai supprimé les autorisations de lectures, écritures et d'exécutions :
chmod go-rwx /etc/nullmailer/remotes
Si vous utilisez IPtables, il faudra alors exécuter les commandes suivantes pour autoriser le trafic :
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
Pour rappel, le port 25 précisé dans la règle ci-dessus correspond au protocole SMTP utilisé pour envoyer les e-mails.
IV. Autres
Il y a deux fichiers de logs pour cette application :
- /var/log/syslog
- /var/log/mail.err
Par ailleurs, on trouve un répertoire de spool, avant l'envoi (vérifier que ce dernier est vide si vous ne recevez pas d'e-mail) :
- /var/spool/nullmailer/queue/
Commande pour forcer l'envoi d'email présent dans le spool :
- nullmailer-send
V. Conclusion
Nous voilà avec un serveur configuré pour envoyer des e-mails afin de notifier des alertes, des rapports. Petit test pour vérifier que ça fonctionne :
echo "test envoi email" | mail -s "nullmailer" [email protected]
Hello !
Je dois vraiment pas être fait pour les config mail, après avoir passé et perdu des heures sur sendmail, postfix et maintenant au plus simple sur nullmailer, je me tape des erreurs dont je ne vois pas comment résoudre …
J’ai appliqué le tuto’ il y a de ça 15 jours, et depuis hier sans aucune modif système je me tape l’erreur 552 :
smtp: Failed: 552 sorry, your envelope sender domain must exist (#5.7.1)
J’utilise un compte SMTP existant pour envoyer les emails (ovh).
Passé pas mal de temps sur Google mais j’en viens souvent sur les mêmes réponses, relativement flou pour mes connaissances.
Une petite idée ?
Merci !
Bonjour Nemergal,
Ta passerelle SMTP est-elle accessible ?
Selon les infos que tu me donnes j’ai comme l’impression que le domaine utilisé pour ta passerelle n’est plus accessible.
Hésite pas à créer un sujet sur notre forum.
Bonne soirée.
Arnaud.
Bonjour, je test avec mon compte gmail mais le mail ne part pas.
Dans les log il est indiqué :
Mar 15 11:00:23 XXXX nullmailer[13018]: smtp: Failed: 534-5.7.14 <https://accounts.google.com/signin/continue?XXXXXXXXx
Mar 15 11:00:23 XXXX nullmailer[12925]: Sending failed: Permanent error in sending the message
Je pense que google refuse la connexion de mon serveur pour l'envoi de mon mail
Bonjour,
nullmailer permet-il d’envoyer un message entre deux machines d’un réseau local, ou bien est-il obligatoire de réinstaller postfix (ce dont j’ai malheureusement l’impression) ?
Merci.