Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:mail:mail_relai [20/09/2024 07:31] – ↷ Page déplacée de pratique:informatique:mail_relai à pratique:informatique:mail:mail_relai Zatalyzpratique:informatique:mail:mail_relai [13/10/2025 18:52] (Version actuelle) – [Paramétrage des DNS] Zatalyz
Ligne 1: Ligne 1:
-====== Déléguer l'envoi des mails depuis un serveur  ======+====== Déléguer l'envoi des mails depuis un serveur (Msmtp)  ======
 ===== Msmtp ===== ===== Msmtp =====
  
Ligne 13: Ligne 13:
  
 Ici je met deux config "pour mémoire", Gandi (que je ne vais plus utiliser) et Nordcantal (qui est mon propre domaine). À adapter à vos propres serveur sortants smtp.  Ici je met deux config "pour mémoire", Gandi (que je ne vais plus utiliser) et Nordcantal (qui est mon propre domaine). À adapter à vos propres serveur sortants smtp. 
-<code>+<code bash /etc/msmtprc>
 # Compte Gandi # Compte Gandi
 account        gandi account        gandi
Ligne 39: Ligne 39:
 user           user@nomdomaine.com user           user@nomdomaine.com
 password       (mettezlevotre) password       (mettezlevotre)
-logfile        /var/log/.msmtp.log+syslog         LOG_MAIL
 aliases        /etc/aliases aliases        /etc/aliases
 # Définir le compte par défaut # Définir le compte par défaut
Ligne 45: Ligne 45:
  
 </code> </code>
 +
 +<WRAP center round tip 60%>
 +Il est possible que Apparmor fasse des siennes et empêche d'écrire dans le fichier de log (cf [[https://askubuntu.com/questions/878288/msmtp-cannot-write-to-var-log-msmtp-msmtp-log|ici]]).
 +
 +Solution simple et efficace : enlever la ligne ''logfile        /var/log/.msmtp.log'' et mettre ''syslog LOG_MAIL'' dans ''/etc/msmtprc''.
 +
 +Les logs seront gérés par syslog, et nous aurons dans /var/log un "mail.log" qui bénéficiera de la logique de logrotate.
 +
 +</WRAP>
  
 Tester l'envoi d'un mail : Tester l'envoi d'un mail :
Ligne 94: Ligne 103:
   echo "Test" | mail -s "Test " root   echo "Test" | mail -s "Test " root
  
-<WRAP center round tip 60%> +==== Vérifier la sécurité ==== 
-Il est possible que Apparmor fasse des siennes et empêche d'écrire dans le fichier de log (cf [[https://askubuntu.com/questions/878288/msmtp-cannot-write-to-var-log-msmtp-msmtp-log|ici]]). +Pour éviter que le mot de passe du mail soit visible par toute personne connectée au serveur, on peut améliorer un peu les choses.
- +
-Solution simple et efficace : enlever la ligne ''logfile        /var/log/.msmtp.log'' et mettre ''syslog LOG_MAIL''.+
  
 +<WRAP center round help 60%>
 +Il y a des méthodes diverses pour stocker le mot de passe mais la plupart me semblent compliquées à concilier avec un usage serveur : on ne peux pas entrer le mot de passe manuellement quand un courrier veut être envoyé. Si vous voyez comment faire mieux, je prends. 
 </WRAP> </WRAP>
 +
 +On peut stocker le mot de passe dans un fichier séparé en ayant cette ligne à la place de ''password''
 +  passwordeval   "cat /etc/secret/msmtp"
 +
 +(ou tout autre chemin). Cependant je ne suis pas sûre de voir l'intérêt d'un autre fichier, si son accès dépend des mêmes contraintes que ''/etc/msmtprc''
 +
 +On va créer un group qui aura le droit d'envoyer les mails (mais pas de modifier la configuration, réservée à root), y mettre des utilisateurs systèmes, et renforcer les droits sur le fichier de msmtp : la lecture sera interdite à tout le monde sauf le nouveau groupe, et la modification réservée à root.
 +
 +<code>
 +sudo groupadd smtpusers
 +sudo usermod -aG smtpusers backup
 +sudo usermod -aG smtpusers mail
 +sudo usermod -aG smtpusers www-data
 +sudo chown root:smtpusers /etc/msmtprc
 +sudo chmod 640 /etc/msmtprc
 +</code>
 +
 +=> J'ai par défaut ajouté les users systèmes "backup, mail, www-data" au groupe, car ils ont parfois besoin d'envoyer des mails. On peut aussi ajouter son/ses utilisateurs personnels, mais ça n'a pas grand intérêt sur un serveur. Suivant ce qu'on installe comme logiciel, il faut veiller à ce qu'ils puissent envoyer des mails si besoin en faisant partie de ce groupe.
 +
 +
  
 ==== Avec Scaleway ==== ==== Avec Scaleway ====
Ligne 133: Ligne 162:
   cat mail.txt | msmtp -a scaleway [votre@mail]   cat mail.txt | msmtp -a scaleway [votre@mail]
  
-==== Sources ==== +==== Permettre à php d'envoyer ==== 
-  * https://doc.ubuntu-fr.org/msmtp +Je ne comprends pas trop pourquoi "parfois ça va, parfois non"
-  * https://doc.ubuntu-fr.org/tutoriel/comment_envoyer_un_mail_par_smtp_en_ligne_de_commande+
  
-===== Paramétrage des DNS ===== +On commence par donner le droit à www-data de se servir de msmtp : 
-Pour améliorer la délivrabilité des mails, il faut configurer les DNS afin que tout soit propre. Au programme, SPF, DKIM, DMARC.+  sudo chgrp www-data /etc/msmtprc
  
-==== SPF ==== +On vérifie aussi que dans php.inila ligne suivante existe. À refaire à chaque changement de version de php...
-Sur OVHpar défaut :  +
-  "v=spf1 include:mx.ovh.com ~all"+
  
-Sur Gandi :  +<code json /etc/php/X.Y/apache2/php.ini> 
-  "v=spf1 include:_mailcust.gandi.net ?all"+[mail function] 
 +sendmail_path = "/usr/bin/msmtp -t" 
 +</code>
  
-Cela va autoriser tout ce qui passera par la gestion mail de ovh. +Et on recharge apache/ce qui utilise php :
  
-C'est suffisant pour tout les mails envoyé par le premier niveau (mondomain.com). Par contre il faut ajouter des options si on utilise un sous-domaine d'un serveur spécifique (moi.mondomain.com) ou des services tiers (autremail.com) : +  service apache2 restart 
-  "v=spf1 include:_mailcust.gandi.net a:moi.mondomain.com include:autremail.com ?all"+==== Problème de port ? ==== 
 +Vérifiez que les règles "output" sur le [[pratique:informatique:parefeu:nftables#sur_hyperviseur_expose_sur_internet|pare-feu]] permettent à msmtp d'envoyer un mail ! Les ports 465 et 587 sont concernés, uniquement en **output**.
  
-<WRAP center round tip 60%> 
-Si usage de https://sg-autorepondeur.com/ il faut probablement accepter leur domaine ? À vérifier... 
-</WRAP> 
  
-Voir aussi [[https://support.google.com/a/answer/10685031|Doc Google Définir votre enregistrement SPF (configuration de base)]] qui détaille bien les options.+==== Sources ==== 
 +  * https://doc.ubuntu-fr.org/msmtp 
 +  * https://doc.ubuntu-fr.org/tutoriel/comment_envoyer_un_mail_par_smtp_en_ligne_de_commande 
 +  * https://marlam.de/msmtp/msmtp.html
  
-==== DKIM ==== +===== Paramétrage des DNS ===== 
-Chez Gandi c'est tout automatiquesuffit de cliquer sur le bon bouton : [[https://news.gandi.net/fr/2021/05/protegez-la-reputation-de-votre-nom-de-domaine-avec-dkim/|Protégez la réputation de votre nom de domaine avec DKIM]].+Pour améliorer la délivrabilité des mailsil faut configurer les DNS afin que tout soit propreAu programme, SPF, DKIM, DMARC.
  
-Chez OVH, ils conseillent de génerer le DKIM via http://dkimcore.org/tools/keys.html et débrouille-toi ma poule. Demande de plus de détails sur https://community.ovh.com/t/parametrage-de-dkim-quels-options-renseigner/48740+Et ça se passe sur la [[pratique:informatique:mail:mail_dns|page suivante]]
  
-  * [[https://support.google.com/a/topic/2752442|Doc Google : Authentifier les e-mails avec DKIM]] +{{tag>Mail Relai MSMTP}}
- +
-==== DMARC ==== +
-Attention ! DMARC doit être activé uniquement si DKIM et SPF sont fonctionnels, sinon ça ne marchera pas ! +
- +
-Gandi (modifier mail@mondomain.com) : +
-  "v=DMARC1; p=reject; rua=mailto:mail@mondomain.com" +
- +
-==== Sources ==== +
-  * [[https://support.google.com/mail/answer/81126|Empêcher le blocage ou le placement dans le dossier "Spam" des messages envoyés aux utilisateurs Gmail]] : la doc de google est étonnamment bien. +
-  * Google :  +
-    * [[https://toolbox.googleapps.com/apps/checkmx/]] : test du nom de domaine par Google +
-    * [[https://transparencyreport.google.com/safe-browsing/overview]] : État des soucis sur le nom de domaine répertorié par Google (la réputation de notre nom de domaine chez eux) +
-  * [[https://www.mail-tester.com/]] : envoyer un email à une adresse qui va vérifier sa conformité face à plein de paramètres +
-  * https://mxtoolbox.com : divers outils de vérification de la qualité du mail+
  
-==== Spécificités GAFAM ==== +[[https://creativecommons.org/publicdomain/zero/1.0/deed.fr|{{ https://liev.re/imagesweb/licences/cc-zero.png?100 | Ce texte est placé sous licence CC0}}]]
-=== Google === +
-Google utilise un outil ([[https://postmaster.google.com]]) qui va offrir des rapports sur la façon dont nos mails sont géré par euxAu passage, les petits sagouins en profitent pour ajouter une validation, ils donnent un champ TXT à ajouter dans le DNS pour valider que le domaine est à nous+
  
-Nul doute que ce genre de détail aide aussi à la délivrance des mails. 
  
pratique/informatique/mail/mail_relai.1726810293.txt.gz · Dernière modification : 20/09/2024 07:31 de Zatalyz