Dernière mise à jour : 12/11/2023 à 19h27
Table des matières
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.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.
Code BASH :
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 :
Code BASH :
ls -la /usr/sbin/sendmail
Doit retourner :
Code BASH :
/usr/sbin/sendmail -> ../bin/msmtp
Configuration
Pour fonctionner, le service s'appui sur le fichier de configuration suivant, à éditer :
Code BASH :
vim /etc/msmtprc
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
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
Code BASH :
account default : Gmail rungis
Code BASH :
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 :
Code BASH :
echo "Corps du mail" | mail -s "Sujet du mail" -- destinataire@gmail.com
Installation de mutt
msmtp fonctionne seul mais mutt offre plus de fonctionnalités, notamment l'envoi de pièces jointes.
On installe mutt :
Code BASH :
apt update
apt install mutt
Puis on créé le fichier .muttrc dans le dossier home de l'utilisateur :
Code BASH :
vim ~/.muttrc
Et on y ajoute les lignes suivantes :
Code BASH :
set sendmail="/bin/msmtp" set use_from=no
Test avec mutt
On peut tout d'abord créer une petite pièce jointe de test
Code BASH :
echo "coucou" >> fichiertest.txt
Puis on envoi ce fichier à l'adresse souhaitée :
Code BASH :
echo "texte dans le mail" | mutt -s "Sujet du mail" -a fichiertest.txt -- adresse@mail.from