ssmtp: envoyer des mails facilement sous linux

ssmtp

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 😉

4 commentaires sur ssmtp: envoyer des mails facilement sous linux

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

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*