Aller au contenu

Paramétrer simplement l'envoi de mail depuis un serveur

mail-server

Dans cet article, nous allons décrire comment paramétrer l'envoi de mail à partir d'un serveur. Cela peut s'avérer très utile pour qu'un serveur envoi des mails lors de la réalisation d'une tache, ou pour intégrer l'envoi d'un mail dans un script.

Installation des paquets nécessaires

Je donne les commandes ici pour Debian et dérivés mais ces paquets existent sur d'autres distributions.

On installe les paquets msmtp, msmtp-mta ainsi que bsd-mailx.

sudo apt install msmtp msmtp-mta bsd-mailx

Ce dernier paquet est utile seulement si vous souhaitez utiliser la commande mail pour l'envoi des messages. Sans ce paquet, seule la commande msmtp fonctionne. Pour un script, ce n'est pas grave mais certains logiciels envoient des mails seulement par la commande mail. C'est le cas par exemple de unattended-upgrades

Vérifier ensuite que le système utilise bien msmtp pour l'envoi de mails :

ls -la /usr/sbin/sendmail

Doit retourner :

/usr/sbin/sendmail -> ../bin/msmtp

Configuration

Pour fonctionner, le service s'appui sur le fichier de configuration suivant, à éditer :

vim /etc/msmtprc

Tip

Ce fichier fonctionne pour envoyer des mail à partir du compte root. Pour envoyer un mail à partir d'un autre utilisateur, créer un fichier .msmtprc dans le dossier utilisateur

On peut y insérer les options par défaut pour tous les comptes que l'on paramètre :

# Valeurs par defaut pour tous les comptes.
defaults
auth           on
tls            on
tls_starttls   off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

Warning

Attention à la configuration en fonction de votre fournisseur de mail. Par exemple, Infomaniak ne supporte pas le STARTTLS il faut utiliser le port 465, activer tls mais désactiver STARTTLS

Warning

L'utilisateur qui enverra le mail doit avoir accès au fichier de log. On peut donc soit créer un fichier de log dans le dossier de l'utilisateur soit lui donner les droits sur ce fichier de log.

On créé ensuite une partie pour chaque compte que l'on souhaite paramétrer :

account            [nom du compte]
host               [serveur smtp]
port               [port smtp]
from               [adresse mail] ou [Nom expéditeur]
user               [utilisateur du compte mail utilisé]
password           [mot de passe du compte mail]

Par exemple, pour un compte gmail

account            Gmail rungis
host               smtp.gmail.com
port               587
from               Rungis
user               [email protected]
password           MonMotDePasseGmail

Ajouter une ligne à la fin du fichier pour spécifier le nom du compte par défaut à utiliser

account default : Gmail rungis

Warning

Vu que le fichier contient le mot de passe du compte mail, pensez à réduire les droits sur ce fichier avec les commandes suivantes :

sudo chown root:root /etc/msmtprc
sudo chmod 600 /etc/msmtprc

Test

Vous pouvez ensuite tester l'envoi d'un mail par la commande suivante :

echo "Corps du mail" | mail -s "Sujet du mail" -- [email protected]

Installation de mutt

msmtp fonctionne seul mais mutt offre plus de fonctionnalités, notamment l'envoi de pièces jointes.

On installe mutt :

apt update
apt install mutt

Puis on créé le fichier .muttrc dans le dossier de l'utilisateur :

vim ~/.muttrc

Et on y ajoute les lignes suivantes :

set sendmail="/bin/msmtp"
set use_from=no

Note

Pas besoin de plus d'options, le reste est déjà défini dans le fichier de configuration de msmtp

Test avec mutt

On peut tout d'abord créer une petite pièce jointe de test

echo "coucou" >> fichiertest.txt

Puis on envoi ce fichier à l'adresse souhaitée :

echo "texte dans le mail" | mutt -s "Sujet du mail" -a fichiertest.txt -- [email protected]