{{tag>Bionic Xenial Focal MTA }}
====== MSMTP ======
**msmtp** est un client [[https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol|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 [[cron|Programmer des tâches avec CRON]], [[logwatch|Logwatch]] ou autre) sans avoir à mettre en place une solution plus lourde comme:
* [[:postfix_systeme_satellite]]
* [[:exim4-satellite]]
===== Pré-requis =====
* Avoir une connectivité à l'Internet pleinement fonctionnelle.
===== Installation =====
Pour installer ce logiciel, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>msmtp]]** et **[[apt>msmtp-mta]]**.
Soit en ligne de commande :
sudo apt install msmtp msmtp-mta
Valider la proposition de non-acceptation de [[https://doc.ubuntu-fr.org/apparmor|apparmor]] :
{{:applications:msmtp:msmtp1.png?400|}}
===== Configuration =====
Pour configurer l'envoi de courriels au niveau du système, [[:tutoriel:comment_modifier_un_fichier|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
Pour OVH dans les paramètres généraux, pensez à désactiver starttls (sauf si vous utilisez une solution E-MAIL PRO) :
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
Il faut vérifier que le système utilise bien msmtp pour l'envoi de mail :
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, [[:tutoriel:comment_installer_un_paquet|réinstallez le paquet]] **[[apt>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 ** [[apt>mailutils|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.
Si la commande ''mail'' ne fonctionne pas, [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>bsd-mailx]]** :
sudo apt install bsd-mailx
Si vous recevez ce message d'erreur :
''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 [[http://blogettrux.free.fr/index.php?2020/11/23/22/00/09-config-msmtp | résumée sur cette page en français.]] et [[https://askubuntu.com/questions/878288/msmtp-cannot-write-to-var-log-msmtp-msmtp-log| 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 [[:tutoriel:comment_supprimer_un_paquet|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.
===== Voir aussi =====
* [[tutoriel:comment_envoyer_un_mail_par_smtp_en_ligne_de_commande|Comment envoyer un courriel par smtp en ligne de commande]]
* **(en)** [[https://marlam.de/msmtp/msmtp.html|La documentation officielle de MSMTP]]
----
//Contributeurs principaux : [[utilisateurs:bruno|bruno]], [[utilisateurs:autre_identifiant|nom ou pseudo autre]].//