23/11/2024

Services

Comment installer et configurer sSMTP sur CentOS 7.6 ?

I. Présentation

L'outil sSMTP est une très bonne alternative à Postfix et Sendmail si vous souhaitez envoyer des e-mails à partir de votre serveur Linux, notamment sous CentOS ou Debian. Il présente l'avantage d'être simple à configurer et léger, il consomme donc peu de ressources, et se contentera de faire le relais vers le serveur de messagerie configuré.

Dans cet exemple, j'utilise une machine sous CentOS 7.6. Cependant, la configuration de sSMTP en elle-même est applicable sur d'autres distributions, notamment Debian.

II. Installer sSMTP

Grâce au gestionnaire de paquet yum, installez le paquet avec la commande suivante :

yum install -y ssmtp

Si vous obtenez un message indiquant que le paquet n'est pas disponible, ajoutez le dépôt EPEL à votre système :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* 
yum -y install epel-release

Passons maintenant à la configuration.

III. Configurer sSMTP - ssmtp.conf

Sachez que sSMTP s'appuie sur deux fichiers pour sa configuration :

- /etc/ssmtp/ssmtp.conf
- /etc/ssmtp/revaliases

Le premier est le fichier de configuration principal, c'est surtout celui-ci qui va nous intéresser. Le second sert à spécifier une adresse e-mail spécifique (alias) à utiliser pour un utilisateur.

Maintenant, ouvrez le fichier de configuration principal ssmtp.conf mais avant cela, nous en faisons une copie :

cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.origin
nano /etc/ssmtp/ssmtp.conf

sSMTP ira s'authentifier auprès du serveur de messagerie ciblé, avec vos identifiants, pour envoyer les e-mails. Il est tout à fait possible d'utiliser un compte Gmail, OVH, Ionos, etc... À condition d'indiquer les bonnes infos.

Voici un exemple de configuration complet et commenté que vous pouvez adapter :

# Serveur SMTP vers lequel envoyer les e-mails
MailHub=smtp.domaine.fr:587

# Le domaine source utilisé pour envoyer les e-mails
RewriteDomain=it-connect.fr

# Nom de la machine
Hostname=lamp01

# Ré-écrire le champ from (expéditeur) 
FromLineOverride=yes

# Adresse à utiliser pour envoyer les e-mails à partir des comptes admins
[email protected]

# Option par défaut pour le fichier certificat
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

# Utiliser de TLS (UseStartTLS à activer si besoin)
#UseSTARTTLS=YES 
UseTLS=YES

# Authentification (utilisateur et mot de passe)
[email protected]
AuthPass=MonSuperPassword

Ce paramétrage ne fonctionnera peut-être pas avec votre serveur de messagerie, tout dépend de la configuration du serveur utilisé. Si ça ne fonctionne pas lorsque nous allons réaliser le test, essayez surtout de "jouer" avec les directives liées au TLS.

Il ne reste plus qu'à tester d'envoyer un e-mail ! 🙂

Note : les modifications sur la config de sSMTP sont immédiatement prises en compte, il n'y a pas de service à redémarrer.

IV. Envoyer un e-mail avec sSMTP

Pour réaliser un test de manière simple, nous allons modifier le MTA par défaut du système afin d'utiliser sSMTP. Exécutez cette commande :

alternatives --config mta

Si le MTA par défaut n'est pas sSMTP, alors indiquez son ID (à repérer sur la sortie de la commande) pour le définir par défaut.

Cela nous permet d'utiliser la commande "mail" pour réaliser un test d'envoi d'un e-mail. Par exemple à destination de [email protected] avec l'objet "Test e-mail" et le contenu "test" :

echo "test" | mail -s "Test e-mail" [email protected]

La commande mail va s'appuyer directement sur sSMTP. Si vous n'obtenez pas de message d'erreur, il est fort probable que l'e-mail arrive dans votre boite e-mail dans les secondes qui suivent 😉

V. Utiliser sSMTP avec PHP

Si vous souhaitez envoyer des e-mails depuis votre site Internet, il y a de fortes chances pour que vous souhaitiez intégrer sSMTP à PHP pour l'utiliser en tant que MTA. La configuration est simple, le fichier de configuration PHP (php.ini) contient la directive "sendmail_path" où l'on spécifie le nom du binaire à utiliser pour envoyer les e-mails.

Éditez le fichier de configuration php.ini :

nano /etc/php.ini

Recherchez la ligne "sendmail_path" et remplacez sendmail par sSMTP, comme ceci :

sendmail_path = /usr/sbin/ssmtp -t

Il ne reste plus qu'à sauvegarder ! Voilà sSMTP est désormais installé et configuré sur votre machine, il n'y a plus qu'à en profiter 🙂

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Comment installer et configurer sSMTP sur CentOS 7.6 ?

  • Bonjour

    Petite précision sur son utilisation sur la distribution Debian.
    Depuis Debian 10 Buster, le paquet n’est plus maintenu : https://wiki.debian.org/sSMTP. Il est conseillé d’utiliser l’alternative https://wiki.debian.org/msmtp.

    Ça vous évitera de perdre du temps à comprendre pourquoi l’envoi d’e-mails ne fonctionnait plus 😉

    Bonne continuation

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.