Dans cet article, nous allons décrire comment paramétrer l'envoi de mail à a 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.
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.
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 :
Doit retourner :
Pour fonctionner, le service s'appui sur le fichier de configuration suivant, à éditer :
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 :
Code TEXT :
# 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
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
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 :
Code TEXT :
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
Code TEXT :
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
Vu que le fichier contient le mot de passe du compte mail, pensez à réduire les droits sur ce fichier avec les commandes suivantes :
Vous pouvez ensuite tester l'envoi d'un mail par la commande suivante :
msmtp fonctionne seul mais mutt offre plus de fonctionnalités, notamment l'envoi de pièces jointes.
On installe mutt :
Puis on créé le fichier .muttrc dans le dossier home de l'utilisateur :
Et on y ajoute les lignes suivantes :
Pas besoin de plus d'options, le reste est déjà défini dans le fichier de configuration de msmtp
On peut tout d'abord créer une petite pièce jointe de test
Puis on envoi ce fichier à l'adresse souhaitée :