MSMTP
msmtp est un client SMTP très simple et facile à configurer pour l'envoi de courriels.
Son mode de fonctionnement par défaut consiste à transférer les courriels au serveur SMTP que vous aurez indiqué dans sa configuration. Ce dernier se chargera de distribuer les courriels à leurs destinataires.
Il est entièrement compatible avec sendmail, prend en charge le transport sécurisé TLS, les comptes multiples, diverses méthodes d’authentification et les notifications de distribution.
msmtp est la solution idéale si vous avez besoin que votre serveur vous envoie les courriels de notifications (taches Programmer des tâches avec CRON, Logwatch ou autre) sans avoir à mettre en place une solution plus lourde comme:
Pré-requis
- Avoir une connectivité à l'Internet pleinement fonctionnelle.
Installation
Pour installer ce logiciel, il suffit d'installer les paquets msmtp et msmtp-mta.
Soit en ligne de commande :
sudo apt install msmtp msmtp-mta
Valider la proposition de non-acceptation de apparmor :
Configuration
Pour configurer l'envoi de courriels au niveau du système, ouvrez le fichier /etc/msmtprc en modification (A créer s'il n'existe pas ) puis renseignez les paramètres de connexion à votre compte de courriel en vous inspirant de l'exemple ci-dessous :
# Valeurs par défaut pour tous les comptes. defaults auth on tls on tls_starttls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile /var/log/msmtp # Exemple pour un compte Gmail account gmail auth plain host smtp.gmail.com port 587 from username@gmail.com user username password XXXXXXXXXX # Exemple pour un compte GMX account gmx host mail.gmx.com port 587 from username@gmx.com user username@gmx.com password XXXXXXXXXX tls_nocertcheck # Exemple pour un compte OVH MX PLAN account ovh auth on tls on tls_starttls off host ssl0.ovh.net port 465 from username@example.com user username@example.com password XXXXXXXXXX # Exemple pour un compte OVH E-MAIL PRO account ovh host proX.mail.ovh.net port 587 from username@example.com user username@example.com password XXXXXXXXXX # Exemple pour un compte Infomaniak account infomaniak host mail.infomaniak.com port 587 from username@example.com user username@example.com password XXXXXXXXXX # Exemple pour un serveur de test MailHog account mailhog auth off tls off tls_starttls off host localhost port 1024 from username@example.com # Exemple pour riseUP account riseup tls on auth on host smtp.riseup.net port 587 from me@riseup.net user me@riseup.net password xxx # Exemple pour free. L'utilisation du port 25 est une liaison non sécurisée nécessitant d'installer aussi bsd-mailx account free1 tls off auth off port 25 host smtp.free.fr from Me1@free.fr user You@free.fr password Celui définit dans la messagerie free pour Me1 account free2 auth off port 587 host smtp.free.fr from Me2@free.fr user You@free.fr password Celui définit dans la messagerie free pour Me2 # Définir le compte par défaut account default : gmail
tls_starttls off
Si vous voulez configurer l'envoi de courriels au niveau d'un utilisateur, créez le fichier .msmtprc dans le dossier personnel de l'utilisateur concerné. Ce fichier ne devra être accessible en lecture et écriture qu'à l'utilisateur :
chmod 600 .msmtprc
ls -la /usr/sbin/sendmail
Qui doit retourner :
lrwxrwxrwx 1 root root 12 nov. 28 2016 /usr/sbin/sendmail -> ../bin/msmtp
Si ce n'est pas le cas, réinstallez le paquet msmtp-mta.
Usage en crontab
Certaines lignes ne sont pas obligatoires, comme CRONARGS, mais ça ne fait pas de mal.
CRONARGS=-m/usr/bin/msmtp MAILTO=toi@fournisseur-de-mail.tld MAILFROM=toi@fournisseur-de-mail-renseigne-dans-msmtp.tld # m h dom mon dow command 10 * * * * command_X
Test de fonctionnement
printf "Subject:DeQuoiOnParle\n\nLeCorpsDuMessage" | msmtp user@domain.com
Erreur de retour possible: "msmtp: le serveur ne supporte pas l'authentification"
Si cela ne fonctionne pas, installez le paquet mailutils, puis faite cette commande.
printf "Subject:DeQuoiOnParle\n\nLeCorpsDuMessage" | msmtp user@domain.com
Erreur de retour possible: "mail: impossible d'expédier le message : Processus terminé avec un état de sortie non nul"
Vérifier sa boîte de réception.
send-mail: impossible d'écrire dans le journal /var/log/msmtp.log : erreur d'ouverture de fichier: Permission non accordée
peut-être avez-vous sélectionné "Oui" sur l'écran AppArmor ? Dans ce cas, il faut désactiver la prise en charge de msmtp en faisant :
sudo ln -s /etc/apparmor.d/usr.bin.msmtp /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/usr.bin.msmtp
Si ce n'est pas le cas, la solution est résumée sur cette page en français. et précisée sur sa source en anglais Testé avec succès sur Ubuntu 20.04.
Il peut aussi être utile d'ajouter l'utilisateur au groupe msmtp et reconnecter.
sudo adduser $USER msmtp exit
Désinstallation
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.