Outils pour utilisateurs

Outils du site


admin:infrastructure:sympa

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
admin:infrastructure:sympa [2021/12/05 12:34] – [Postfix coté guest] fpoulainadmin:infrastructure:sympa [2026/03/03 22:53] (Version actuelle) – Correction typographique fhenry2
Ligne 1: Ligne 1:
-====== Interconnexion entre sympa et postfix ======+====== Service Listes ======
  
-Pour rappel on a une architecture avec un relais mail qui gère tout ce qui entre/sort du cluster au niveau du mail. Le sympa est installé sur une machine séparée. Pour éviter la confusion on nommera //guest// la machine hébergeant le sympa et on nommera //relais// la machine hébergeant le postfix frontal.+===== Création d'une liste =====
  
-<note important>On est ici dans une documentation a posteriori d'un truc un peu touchy, donc il est possible que des erreurs subsistent.</note> +Pour créer une liste il faut utiliser l'interface WWSympa depuis la page de [[https://listes.chapril.org/sympa/create_list_request|requête de création de liste]].
-===== Postfix coté relais =====+
  
-Pour que le relais transmette les emails au bon guest, il faut installer les bons transports. +Pour une liste de type support, il faut choisir le modèle //Template pour une liste de type support// qui contient notamment des éléments de configuration en lien avec la gestion des adresses en erreur. 
-<code conf /etc/postfix/conf.d/40-sympa.conf>+Voir le [[https://agir.april.org/issues/5692|ticket n°5692]] pour plus d'information. 
 + 
 +Il faut choisir un //objet// pour la liste. 
 + 
 +L'interface demande aussi de choisir un //public visé//, ce qui est inutile dans notre cas. 
 +Choisir //Autre// tout en bas de la liste. 
 + 
 +Ajouter une //description// courte. 
 + 
 +Puis cliquer sur //Envoyer votre demande de création//
 + 
 +La liste est créée. 
 +Il faut ensuite ajouter les adresses courriels des personnes qui recevront les courriels de support dans l'onglet //Les utilisateurs// puis //Abonnés//
 +Mettre aussi ces adresses en //Propriétaires de la liste//, dans l'onglet //Les utilisateurs// puis //Propriétaires//, en pensant à cocher la case //Gestionnaire privilégié//
 + 
 +Puis envoyer un courriel de test avec une adresse non inscrite à la liste, pour vérifier la bonne diffusion du message. 
 + 
 +Pour la création du modèle //Template pour une liste de type support// procéder comme suit : 
 +<code bash> 
 +mkdir -p /etc/sympa/create_list_templates/liste-support/ 
 +cp /usr/share/doc/sympa/examples/samples/intranet/create_list_templates/intranet_list/{comment,config}.tt2 \ 
 +/etc/sympa/create_list_templates/liste-support/ 
 +</code> 
 + 
 +Ces deux copies peuvent être éditées pour personnaliser le modèle. 
 + 
 +===== Modification d'un message envoyé par Sympa ===== 
 + 
 +Il y a un mauvais message affiché lorsqu'une personne tente de s'inscrire à une liste qui demande une confirmation d'inscription par courriel que ce soit via l'interface Web ou par courriel. 
 +Cela induit en erreur la personne qui, du coup, peut ne pas valider l'inscription. 
 + 
 +La personne reçoit deux courriels. 
 +Un courriel de Sympa pour valider son inscription mais elle reçoit un 2e courriel indiquant //La demande a été soumise au gestionnaire de la liste//. 
 + 
 +C'est exactement le même souci qu'avec l’instance Sympa de l'April, comme indiqué au [[https://agir.april.org/issues/5736|ticket n°5736]]. 
 + 
 +On applique la même résolution que pour l’instance Sympa de l'April : 
 +<code bash> 
 +apt install gettext 
 +mkdir /root/sympa-ticket-5736 
 +cd /root/sympa-ticket-5736 
 +dpkg -s sympa |grep Version 
 +wget http://deb.debian.org/debian/pool/main/s/sympa/sympa_6.2.60~dfsg.orig.tar.xz 
 +tar Jxvf sympa_6.2.60~dfsg.orig.tar.xz 
 +cd sympa-6.2.60/po/sympa/ 
 +msgfmt -c -o fr.mo -v fr.po 
 +</code> 
 +<code> 
 +-> 2810 messages traduits, 1 traduction approximative, 1 message non traduit. 
 +</code> 
 + 
 +En comparant au fichier qui est livré avec le paquet Debian : 
 +<code bash> 
 +diff -u /usr/share/locale/fr/LC_MESSAGES/sympa.mo fr.mo 
 +</code> 
 +<code> 
 +fichier identique (parfait) 
 +</code> 
 + 
 +On peut donc modifier le fichier ''fr.po'' pour remplacer la chaîne et avoir un nouveau fichier MO : 
 +<code bash> 
 +cp fr.po fr.po.orig 
 +vi fr.po 
 +diff -u fr.po.orig fr.po 
 +</code> 
 +<code> 
 +-msgstr "La demande a été soumise au gestionnaire de la liste (%1)"  
 ++msgstr "Votre requête à été transmise à l'adresse (%1) pour une demande de confirmation. Le message envoyé contenant un lien de validation."  
 +</code> 
 +<code bash> 
 +msgfmt -c -o fr.mo -v fr.po 
 +</code> 
 + 
 +On met en production : 
 +<code bash> 
 +cd /usr/share/locale/fr/LC_MESSAGES/ 
 +cp sympa.mo sympa.mo.dpkg 
 +cp ~/sympa-ticket-5736/sympa-6.2.40/po/sympa/fr.mo sympa.mo 
 +systemctl restart sympa 
 +systemctl restart wwsympa 
 +</code> 
 +   
 +===== Interconnexion entre Sympa et Postfix ===== 
 + 
 +Pour rappel on a une architecture avec un relais courriel qui gère tout ce qui entre ou sort du //cluster// au niveau du courriel. 
 +Le service Listes est installé sur une VM séparée. 
 +Pour éviter la confusion on nommera ''guest'' la machine hébergeant Listes et on nommera ''relais'' la machine hébergeant l’instance Postfix frontale. 
 + 
 +<note important> 
 +On est ici dans une documentation //a posteriori// d'un truc un peu //touchy//, donc il est possible que des erreurs subsistent. 
 +</note> 
 + 
 +==== Postfix coté relais ==== 
 + 
 +Pour que la VM ''relais'' transmette les courriel à ''guest'', il faut installer les bons transports. 
 + 
 +<code /etc/postfix/conf.d/40-sympa.conf>
 transport_maps = hash:/etc/postfix/transports/sympa, hash:/etc/postfix/transports/slow_domains, hash:/etc/postfix/transports/sympa-static transport_maps = hash:/etc/postfix/transports/sympa, hash:/etc/postfix/transports/slow_domains, hash:/etc/postfix/transports/sympa-static
 </code> </code>
  
-Par ailleurs il faut que le relais reconnaisse les transports comme des destinataires valides. Nous avons donc +Par ailleurs il faut que ''relais'' reconnaisse les transports comme des destinataires valides. 
-<code conf /etc/postfix/conf.d/42-recipients.conf >+Nous avons donc cette ligne : 
 +<code /etc/postfix/conf.d/42-recipients.conf >
 local_recipient_maps = proxy:unix:passwd.byname $alias_maps $transport_maps local_recipient_maps = proxy:unix:passwd.byname $alias_maps $transport_maps
 </code> </code>
  
-Examinons les définitions des transports : +On examine les définitions des transports : 
-  - ''slow_domains'' : pour limiter le débit de soumission des courrier à des domaine pauvres comme laposte.net qui n'ont pas les moyens d'encaisser plus de 1 courriel à la foisCe n'est pas à proprement parler essentiel à sympa, mais de fait le besoin s'en fait largement sentir lorsqu'un sympa est installé.<code conf /etc/postfix/transports/slow_domains.map >+  - ''slow_domains'' : pour limiter le débit de soumission des courriels à des domaines pauvres comme ''laposte.net'' qui n'ont pas les moyens d'encaisser plus d’un courriel à la fois((Ce n'est pas à proprement parler essentiel à Sympa, mais de fait le besoin s'en fait largement sentir lorsqu’une instance de Sympa est déployée.)) : 
 +<code /etc/postfix/transports/slow_domains.map>
 aliceadsl.fr slow: aliceadsl.fr slow:
 free.fr slow: free.fr slow:
Ligne 34: Ligne 131:
 yahoo.fr slow: yahoo.fr slow:
 </code> </code>
-  - ''sympa-static'' : les adresses de services pour le sympa.<code conf /etc/postfix/transports/sympa-static.map >+  - ''sympa-static'' : les adresses de services pour Sympa : 
 +<code /etc/postfix/transports/sympa-static.map>
 sympa@chapril.org            smtp:[sympa.cluster.chapril.org] sympa@chapril.org            smtp:[sympa.cluster.chapril.org]
 sympa-request@chapril.org    smtp:[sympa.cluster.chapril.org] sympa-request@chapril.org    smtp:[sympa.cluster.chapril.org]
 sympa-owner@chapril.org      smtp:[sympa.cluster.chapril.org] sympa-owner@chapril.org      smtp:[sympa.cluster.chapril.org]
 </code> </code>
-  - ''sympa''c'est là que les sont les transports spécifiques aux listesOn verra plus tard sa fabrication.<code conf /etc/postfix/transports/sympa.map>+  - ''sympa'' :les transports spécifiques aux listes((On verra plus tard sa fabrication.)) : 
 +<code /etc/postfix/transports/sympa.map>
 ## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path) ## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path)
 ## À copier dans mail.cluster.chapril.org:/etc/postfix/transports/ ## À copier dans mail.cluster.chapril.org:/etc/postfix/transports/
Ligne 50: Ligne 149:
 </code> </code>
  
-===== Postfix coté guest =====+==== Postfix coté guest ====
  
-C'est plus direct car basiquement on applique moins de contrôle. Une conf postfix satellite avec chapril.org en mailname et mail.cluster.chapril.org en relais suffit plus quelques adaptations. Cf [[admin:procedures:installation_postfix_satellite|Installation d'un postfix en satellite]].+C'est plus direct car basiquement on applique moins de contrôle. 
 +Une configuration Postfix satellite avec ''chapril.org'' en //mailname// et ''mail.cluster.chapril.org'' en ''relais'' suffit selon l’[[admin:procedures:installation_postfix_satellite|Installation de Postfix en satellite]]
 +Ne restent plus que quelques adaptations.
  
 Les adaptations : Les adaptations :
-<code conf /etc/postfix/main.cf>+<code /etc/postfix/main.cf>
 # On sert localement le domaine chapril.org # On sert localement le domaine chapril.org
 mydestination = $myhostname, sympa.cluster.chapril.org, localhost.cluster.chapril.org, localhost, chapril.org mydestination = $myhostname, sympa.cluster.chapril.org, localhost.cluster.chapril.org, localhost, chapril.org
Ligne 79: Ligne 180:
  
 <note important> <note important>
-On passe par des transports vers de nouveaux services et non par des alias car ça nous permet de contrôler l'uid du service dans ''master.cf''Cf https://agir.april.org/issues/3149+On passe par des transports vers de nouveaux services et non par des alias car ça nous permet de contrôler l'UID du service dans ''master.cf''. 
 +Se référer au [[https://agir.april.org/issues/3149|ticket n°3149]].
 </note> </note>
  
-<code conf /etc/postfix/sympa-transports.regex>+<code /etc/postfix/sympa-transports.regex>
 /^.*\@sympaqueue$/         sympaqueue: /^.*\@sympaqueue$/         sympaqueue:
 /^.*\@sympabouncequeue$/   sympabouncequeue: /^.*\@sympabouncequeue$/   sympabouncequeue:
 </code> </code>
  
-<code conf /etc/postfix/master.cf>+<code /etc/postfix/master.cf>
 # Sympa mailing list manager transports # Sympa mailing list manager transports
 sympaqueue       unix  -                               pipe sympaqueue       unix  -                               pipe
Ligne 96: Ligne 198:
  
  
-===== Connexion entre le postfix coté guest et sympa ===== +<code - /etc/aliases.local>
- +
-Là on retrouve la configuration d'un sympa classique, notamment : +
- +
-<code conf main.cf> +
-alias_maps = hash:/etc/aliases hash:/etc/aliases.local hash:/etc/mail/sympa/aliases +
-</code> +
- +
-Notre fichier d'aliases est ainsi fait (on voit sa construction juste après) : +
-<code conf /etc/mail/sympa/aliases> +
-## List aliases used for the sympa mailing-list manager +
-test: "| /usr/lib/sympa/bin/queue test@chapril.org" +
-test-request: "| /usr/lib/sympa/bin/queue test-request@chapril.org" +
-test-editor: "| /usr/lib/sympa/bin/queue test-editor@chapril.org" +
-#test-subscribe: "| /usr/lib/sympa/bin/queue test-subscribe@chapril.org" +
-test-unsubscribe: "| /usr/lib/sympa/bin/queue test-unsubscribe@chapril.org" +
-test-owner: "| /usr/lib/sympa/bin/bouncequeue test@chapril.org" +
-</code> +
-et +
-<code conf /etc/aliases.local>+
 # default contact emails # default contact emails
 postmaster:     listmaster@chapril.org postmaster:     listmaster@chapril.org
 sympa-owner:    listmaster@chapril.org sympa-owner:    listmaster@chapril.org
 sympa-request:  listmaster@chapril.org sympa-request:  listmaster@chapril.org
-sympa:          "| /usr/lib/sympa/bin/queue sympa@chapril.org" 
 </code> </code>
-====== Construction du fichier d'aliases sur le guest ====== 
  
-En fait sympa fait ça tout seul comme un grand si on lui demande. +Enfin, notre fichier de transports est ainsi fait (on voit sa construction juste après) : 
-<code conf /etc/sympa/sympa/sympa.conf>+<code - /etc/mail/sympa/sympa-transports.map> 
 +## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path) 
 +## Destiné à sympa.cluster.chapril.org:/etc/postfix/transports/ 
 + 
 +sympa@chapril.org sympa+chapril.org@sympaqueue. 
 + 
 +## List aliases used for the sympa mailing-list manager 
 +test@chapril.org test+chapril.org@sympaqueue. 
 +test-request@chapril.org test-request+chapril.org@sympaqueue. 
 +test-editor@chapril.org test-editor+chapril.org@sympaqueue. 
 +#test-subscribe@chapril.org test-subscribe+chapril.org@sympaqueue. 
 +test-unsubscribe@chapril.org test-unsubscribe+chapril.org@sympaqueue. 
 +test-owner@chapril.org test+chapril.org@sympabouncequeue. 
 +</code> 
 + 
 +===== Construction du fichier d'aliases sur le guest ===== 
 + 
 +En fait Sympa fait ça tout seul comme un grand si on lui demande. 
 + 
 +<code /etc/sympa/sympa/sympa.conf>
 sendmail_aliases /etc/mail/sympa/aliases sendmail_aliases /etc/mail/sympa/aliases
 alias_manager    /usr/lib/sympa/bin/alias_manager.pl alias_manager    /usr/lib/sympa/bin/alias_manager.pl
 </code> </code>
  
-Il est poli et exécute newaliases quand il a fini.+Il est poli et exécute ''newaliases'' quand il a fini.
  
-<note tip>Si d'aventure le format de ce qui est généré ne vous satisfait pas, le template à modifier c'est ''/usr/share/sympa/default/list_aliases.tt2''+<note tip> 
 +Si d'aventure le format de ce qui est généré ne vous satisfait pas, le modèle à modifier est ''/usr/share/sympa/default/list_aliases.tt2''
 + 
 +Ce fichier par défaut a les alias de type ''nomdelaliste-subscribe@'' en commentaires. 
 +Or ce type d'alias est utile. 
 +Donc, copier le fichier ''/usr/share/sympa/default/list_aliases.tt2'' dans ''/etc/sympa/list_aliases.tt2''
 +Modifier cette copie pour avoir les alias ''subscribe''
 +La régénération du fichier ''/etc/mail/sympa/aliases'' est faite à chaque création de nouvelle liste. 
 +Mais pour les listes déjà existantes les entrées dans le fichier ne sont pas modifiées. 
 +Il faut donc modifier manuellement ce fichier.
 </note> </note>
  
-Maintenant il faut pousser cette conf proprement sur le relais.+Maintenant il faut pousser cette configuration proprement sur ''relais''.
  
-====== Création et installation du fichier d'aliases sur le relais ======+===== Création et installation du fichier d'aliases sur le relais =====
  
 <note tip> <note tip>
-On va se faire aider de ''systemd'' à l'aide d'une unit de type ''path''Cf https://www.redhat.com/sysadmin/introduction-path-units+On va se faire aider de Systemd à l'aide d'une //unit// de type ''path''. 
 +Se référer à //[[https://www.redhat.com/en/blog/introduction-path-units|RedHat : A brief introduction to path units]]//
 </note> </note>
  
-===== Sur la machine guest =====+==== Sur la machine guest ====
  
 On va installer le programme suivant : On va installer le programme suivant :
-<code bash cat /usr/local/bin/alias_push.sh >+<file bash /usr/local/bin/alias_push.sh>
 #!/bin/bash #!/bin/bash
 echo '## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path)' > /etc/mail/sympa/sympa.map echo '## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path)' > /etc/mail/sympa/sympa.map
Ligne 166: Ligne 276:
  
 git -C /etc add /etc/mail/sympa/ git -C /etc add /etc/mail/sympa/
-git -C /etc commit -m 'MaJ des alias des listes'</code+git -C /etc commit -m 'MaJ des alias des listes' 
-ainsi que les units systemd suivantes : +</file
-<code ini /etc/systemd/system/sympa-transports.path >+ 
 +Ainsi que les //units// suivantes de Systemd 
 +<code ini /etc/systemd/system/sympa-transports.path>
 [Unit] [Unit]
 Description=Wait for new sympa transports Description=Wait for new sympa transports
Ligne 192: Ligne 304:
 </code> </code>
  
-qu'on va penser à activer : +Ce qu'on va penser à activer : 
-  systemctl enable sympa-transports.path sympa-transports.service +<code bash> 
-  systemctl start sympa-transports.path sympa-transports.service +systemctl enable sympa-transports.path sympa-transports.service 
-===== Sur la machine relais =====+systemctl start sympa-transports.path sympa-transports.service 
 +</code> 
 +   
 +==== Sur la machine relais ====
  
 On va installer le programme suivant : On va installer le programme suivant :
-<code bash cat /usr/local/bin/alias_update.sh >+<file bash /usr/local/bin/alias_update.sh>
 #!/bin/bash #!/bin/bash
 cd /etc/postfix && make && postfix reload cd /etc/postfix && make && postfix reload
Ligne 207: Ligne 322:
 git add transports/sympa.map transports/sympa.db git add transports/sympa.map transports/sympa.db
 git commit -m 'MaJ des alias des listes' git commit -m 'MaJ des alias des listes'
-</code+</file
-ainsi que les units systemd suivantes :+ 
 +Ainsi que les //units// suivantes de Systemd :
 <code ini /etc/systemd/system/sympa-transports.path > <code ini /etc/systemd/system/sympa-transports.path >
 [Unit] [Unit]
Ligne 221: Ligne 337:
 </code> </code>
  
-<code ini /etc/systemd/system/sympa-transports.service >+<code ini /etc/systemd/system/sympa-transports.service>
 [Unit] [Unit]
 Description=Push sympa transports toward postfix Description=Push sympa transports toward postfix
Ligne 233: Ligne 349:
 </code> </code>
  
-qu'on va penser à activer : +Ce qu'on va penser à activer : 
-  systemctl enable sympa-transports.path sympa-transports.service +<code bash> 
-  systemctl start sympa-transports.path sympa-transports.service+systemctl enable sympa-transports.path sympa-transports.service 
 +systemctl start sympa-transports.path sympa-transports.service 
 +</code>
admin/infrastructure/sympa.1638707657.txt.gz · Dernière modification : 2021/12/05 12:34 de fpoulain