System
Difficulte: Intermediate
4 min de lecture

msmtp : Envoyer des emails via un relais SMTP

Tutoriel pour installer et configurer msmtp, un client SMTP léger, pour envoyer des emails depuis la ligne de commande ou des scripts via un serveur SMTP externe.

Retour aux tutoriels
Qu\'est-ce que msmtp ?
msmtp est un client SMTP. Son rôle n\'est pas d\'être un serveur de messagerie complet comme Postfix ou Exim, mais de simplement transférer les emails générés localement (par des scripts, des applications comme Logwatch, etc.) vers un vrai serveur SMTP (un "smarthost" ou "relais") pour qu\'il se charge de la livraison finale.

Pourquoi utiliser msmtp ?

  • Léger et simple : Sa configuration est bien plus simple que celle d\'un MTA complet. Il ne fait qu\'une seule chose : envoyer des emails.
  • Sécurité : Supporte parfaitement TLS, ce qui est indispensable pour se connecter aux serveurs SMTP modernes comme ceux de Gmail, Office 365, etc.
  • Flexibilité : Permet de configurer plusieurs profils de serveurs SMTP et de choisir lequel utiliser.
  • Remplacement de /usr/sbin/sendmail : Peut être configuré pour que toutes les applications qui tentent d\'utiliser la commande sendmail standard utilisent en réalité msmtp, ce qui le rend compatible avec de nombreux logiciels.

Prérequis

  • Un serveur Linux (Ubuntu/Debian, CentOS/RHEL).
  • Accès root ou privilèges sudo.
  • Les identifiants d\'un compte email sur un serveur SMTP (ex: Gmail, Outlook, OVH, ou votre propre serveur).

Installation

# Sur Debian / Ubuntu
sudo apt-get update
# On installe aussi ca-certificates pour la gestion des certificats TLS
sudo apt-get install -y msmtp msmtp-mta ca-certificates

# Sur CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y msmtp

Le paquet msmtp-mta sur Debian/Ubuntu configure msmtp pour qu'il remplace sendmail, ce qui est très pratique.

Configuration

La configuration se fait dans le fichier /etc/msmtprc. Ce fichier contiendra vos identifiants, il faut donc le protéger.

Étape 1 : Créer et sécuriser le fichier de configuration

sudo nano /etc/msmtprc
sudo chmod 600 /etc/msmtprc

Étape 2 : Remplir le fichier de configuration

Voici un exemple de configuration pour utiliser le serveur SMTP de Gmail :


# Paramètres par défaut pour tous les comptes
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

# Configuration pour le compte Gmail
account        gmail
host           smtp.gmail.com
port           587
from           [email protected]
user           [email protected]
password       "VOTRE_MOT_DE_PASSE_APPLICATIF"

# Compte à utiliser par défaut
account default : gmail
Utilisez un mot de passe d'application !
Pour les services comme Gmail, n\'utilisez pas votre mot de passe principal. Activez l\'authentification à deux facteurs (2FA) sur votre compte Google et générez un "Mot de passe d'application" spécifique pour msmtp. C\'est beaucoup plus sécurisé.

Étape 3 : Configurer la journalisation

Créez le fichier de log et donnez-lui les bonnes permissions.

sudo touch /var/log/msmtp.log
sudo chown syslog:syslog /var/log/msmtp.log
sudo chmod 640 /var/log/msmtp.log

Tester l'envoi d'email

Vous pouvez maintenant tester l'envoi d'un email depuis la ligne de commande.

# Le corps du mail est envoyé via l'entrée standard (stdin)
echo -e "Subject: Test msmtp\n\nCeci est un test depuis mon serveur." | msmtp --debug [email protected]

Vérifiez la boîte de réception de `[email protected]`. L'option `--debug` vous montrera toute la conversation SMTP, ce qui est très utile pour diagnostiquer les problèmes.

Intégration transparente
Grâce au paquet msmtp-mta, si un programme comme cron ou Logwatch essaie d'envoyer un mail via /usr/sbin/sendmail, c'est msmtp qui sera appelé. Vous n'avez rien d'autre à configurer !

Conclusion

msmtp est la solution idéale pour permettre à un serveur d\'envoyer des notifications par email sans la complexité d\'un serveur de messagerie complet. En quelques minutes, vous pouvez configurer un relais SMTP sécurisé et fiable pour toutes les applications de votre système, améliorant ainsi votre capacité à surveiller et à automatiser vos tâches d\'administration.