Comment installer et configurer sSMTP sur CentOS 7.6 ?
Sommaire
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 🙂
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