Envoyer des mails facilement sous Linux ? C’est possible mes chers bidouilleurs.
Qui n’a jamais galéré avec la configuration d’un serveur mail comme Postfix pour juste utiliser une fonction d’envoi de mails?
Et il faut l’avouer, le plus souvent pour simplement envoyer les rapports de logs ou de scripts dans notre boîte aux lettres perso.
Et bien il existe un moyen bien plus simple pour envoyer des mails à partir de son serveur:
le programme ssmtp.
C’est un MTA, Mail Transfer Agent. Comprendre que c’est un relai de serveur mails simple à configurer. Il se charge de transmettre l’envoi des mails à un serveur SMTP externe.(celui de gmail ici dans mon tuto)
Autre avantage de ssmtp, il est léger et peu gourmand en ressources.
1 - Installation 2 - Configuration 3 - Sécurisation 4 - test 5 - Conclusion
1 – Installation
– Installer le package
sudo apt-get install ssmtp
– Vérifier que sendmail est bien présent sur la machine.
whereis sendmail
Ca devrait renvoyer les chemins suivants:
/usr/sbin/sendmail /usr/lib/sendmail /usr/share/man/man8/sendmail.8.gz
2 – Configuration
Edition du fichier « /etc/ssmtp/ssmtp.conf«
vi /etc/ssmtp/ssmtp.conf
Les informations importantes à personnaliser sont marquées ci-dessous en gras:
# Config file for sSMTP sendmail
# # Tous les utilisateurs avec un uid < 1000 enverront un courriel avec ce nom
# Laissez vide ou commentez la ligne pour désactiver la réécriture
root=MonMail@gmail.com
UseSTARTTLS=YES
# Nom d’utilisateur du compte email avec lequel vous envoyer les courriels
AuthUser=MonMail@gmail.com
# Mot de passe de ce même compte
AuthPass=mot_de_passe_de_votre_messagerie
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
# Where will the mail seem to come from?
rewriteDomain=
# The full hostname
hostname=tutox
# Are users allowed to set their own From: address?
# YES – Allow the user to specify their own From: address
# NO – Use the system generated From: address
FromLineOverride=YES
# Utilisation d’une connexion sécurisée SSL/TLS (décommenter pour activer)
UseTLS=YES
Edition du fichier « /etc/ssmtp/revaliases«
root:MonMail@gmail.com@gmail.com:smtp.gmail.com:587
# Other System user: (for Apache)
# www-data:votre_identifiant@fournisseur.com:mail.fournisseur.com:587
www-data:MonMail@gmail.com:smtp.gmail.com:587
3 – Sécurisation de l’installation
3.1 Limiter les autorisations sur les fichiers de conf :
Seuls propriétaires: mail et root :
chown root:mail /usr/sbin/ssmtp /etc/ssmtp{,/{ssmtp.conf,revaliases}}
Au passage, admirez l’expansion des noms de fichiers grâce aux accolades. En une ligne de commande, on applique le changement de droits aux 2 fichiers /etc/ssmtp/ssmtp.conf et /etc/ssmtp/revaliases.
Rappel: Une commande peut agir sur une liste de fichiers séparés par des virgules entre des accolades{} .
L’expansion de noms de fichiers (remplacement) s’applique aux fichiers contenus dans les accolades.
3.2 Ouvrir les ports au niveau du parefeu:
-
Ouverture du port 25 en tcp en sortie (smtp simple) :
-
Ouverture du port 465 en tcp en sortie (smtp sécurisé) :
-
Ouverture du port 587 en tcp en sortie (smtp sécurisé avec TLS/SSL) :
4 – Test
4.1 Envoi d’un mail
echo Contenu du message | mail -v -s « test »MonMail@gmail.com
4.2 Visualisation du log pour voir si tout s’est bien passé
tail /var/log/mail.log
5 – Conclusion
Ssmtp est l’agent de mail idéal ,à coupler avec des services tels que Logwatch ou autre tâche cron.
Typiquement il peut permettre d’envoyer les logs de surveillance de nos serveurs .Sa configuration est simple et ne demande pas de connaissances particulières pour sa mise en place.
De plus, comme vous avez pu le constater durant ce tuto, il supporte très bien le chiffrement TLS donc les échanges de mails sont sécurisés. Ne vous privez donc pas d’un si bon compagnon sur vos serveurs à administrer 😉
Si il y a une erreur est ce qu’il représente les mails ?
Slt Jean-Marc,
je ne suis pas sûr d’avoir compris ta question
mais oui s’il y a un rejet côté serveur mail de l’autre côté , oui faut renvoyer le mail
Bonjour J’ai fait toutes les manips décrites Sauf l’ouverture des ports que je ne comprend pas, et j’ai cette erreur , Pouvez vous m’aider
pi@????:~ $ echo Contenu du message | mail -v -s « test »#########@gmail.com
bash: mail : commande introuvable
Salut LOUGRAT,
il faudrait que tu installes le paquet « mailutils »:
sudo apt install mailutils
puis tu peux retenter le test d’envoi de mail:
echo Contenu du message | mail -s test xxx@gmail.com