====== Service Listes ====== ===== Création d'une liste ===== 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]]. 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. 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 : 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/ 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 : 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 -> 2810 messages traduits, 1 traduction approximative, 1 message non traduit. En comparant au fichier qui est livré avec le paquet Debian : diff -u /usr/share/locale/fr/LC_MESSAGES/sympa.mo fr.mo fichier identique (parfait) On peut donc modifier le fichier ''fr.po'' pour remplacer la chaîne et avoir un nouveau fichier MO : cp fr.po fr.po.orig vi fr.po diff -u fr.po.orig fr.po -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." msgfmt -c -o fr.mo -v fr.po On met en production : 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 ===== 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. On est ici dans une documentation //a posteriori// d'un truc un peu //touchy//, donc il est possible que des erreurs subsistent. ==== Postfix coté relais ==== Pour que la VM ''relais'' transmette les courriel à ''guest'', il faut installer les bons transports. transport_maps = hash:/etc/postfix/transports/sympa, hash:/etc/postfix/transports/slow_domains, hash:/etc/postfix/transports/sympa-static Par ailleurs il faut que ''relais'' reconnaisse les transports comme des destinataires valides. Nous avons donc cette ligne : local_recipient_maps = proxy:unix:passwd.byname $alias_maps $transport_maps On examine les définitions des transports : - ''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.)) : aliceadsl.fr slow: free.fr slow: hotmail.com slow: hotmail.fr slow: infonie.fr slow: laposte.net slow: libertysurf.fr slow: live.com slow: live.fr slow: orange.com slow: orange.fr slow: wanadoo.com slow: wanadoo.fr slow: yahoo.com slow: yahoo.fr slow: - ''sympa-static'' : les adresses de services pour Sympa : sympa@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'' :les transports spécifiques aux listes((On verra plus tard sa fabrication.)) : ## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path) ## À copier dans mail.cluster.chapril.org:/etc/postfix/transports/ ## List aliases used for the sympa mailing-list manager test@chapril.org smtp:[sympa.cluster.chapril.org] test-request@chapril.org smtp:[sympa.cluster.chapril.org] test-editor@chapril.org smtp:[sympa.cluster.chapril.org] test-unsubscribe@chapril.org smtp:[sympa.cluster.chapril.org] test-owner@chapril.org smtp:[sympa.cluster.chapril.org] ==== Postfix coté guest ==== 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 : # On sert localement le domaine chapril.org mydestination = $myhostname, sympa.cluster.chapril.org, localhost.cluster.chapril.org, localhost, chapril.org # D'ailleurs on a plein d'utilisateurs locaux @chapril.org, regardez alias_maps = hash:/etc/aliases hash:/etc/aliases.local alias_database = $alias_maps # Mais en cas de doute on renvoit au relais fallback_transport = smtp:[mail.cluster.chapril.org] # On accepte de recevoir du mail depuis le relais mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.57 inet_interfaces = all # Reglages Sympa virtual_alias_maps = hash:/etc/mail/sympa/sympa-transports.map transport_maps = regexp:/etc/postfix/sympa-transports.regex sympaqueue_destination_recipient_limit = 1 sympabouncequeue_destination_recipient_limit = 1 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]]. /^.*\@sympaqueue$/ sympaqueue: /^.*\@sympabouncequeue$/ sympabouncequeue: # Sympa mailing list manager transports sympaqueue unix - n n - - pipe flags=RF user=sympa argv=/usr/lib/sympa/bin/queue ${user}@${extension} sympabouncequeue unix - n n - - pipe flags=RF user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${user}@${extension} # default contact emails postmaster: listmaster@chapril.org sympa-owner: listmaster@chapril.org sympa-request: listmaster@chapril.org Enfin, notre fichier de transports est ainsi fait (on voit sa construction juste après) : ## 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. ===== Construction du fichier d'aliases sur le guest ===== En fait Sympa fait ça tout seul comme un grand si on lui demande. sendmail_aliases /etc/mail/sympa/aliases alias_manager /usr/lib/sympa/bin/alias_manager.pl Il est poli et exécute ''newaliases'' quand il a fini. 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. Maintenant il faut pousser cette configuration proprement sur ''relais''. ===== Création et installation du fichier d'aliases sur le relais ===== 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]]// ==== Sur la machine guest ==== On va installer le programme suivant : #!/bin/bash echo '## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path)' > /etc/mail/sympa/sympa.map echo '## À copier dans mail.cluster.chapril.org:/etc/postfix/transports/' >> /etc/mail/sympa/sympa.map awk -F ':' '$1 !~ "#" && $1 !~ "^ *$" {print $1 "@chapril.org\t smtp:[sympa.cluster.chapril.org]"} $1 ~ "#[-#]"{ print $0}' /etc/mail/sympa/aliases | column -t -s $'\t' >> /etc/mail/sympa/sympa.map echo '## Généré automatiquement sur sympa.cluster.april.org via systemd (sympa-transports.path)' > /etc/mail/sympa/sympa-transports.map echo '## Destiné à sympa.cluster.chapril.org:/etc/postfix/transports/' >> /etc/mail/sympa/sympa-transports.map echo 'sympa@chapril.org sympa+chapril.org@sympaqueue.' >> /etc/mail/sympa/sympa-transports.map sed -e 's/:/@chapril.org/' -e 's!"| /usr/lib/sympa/bin/\([^ ]\+\) \([^ @]\+\)@\([^" ]\+\)"!\2+\3@sympa\1.!' /etc/mail/sympa/aliases >> /etc/mail/sympa/sympa-transports.map postmap /etc/mail/sympa/sympa-transports.map scp /etc/mail/sympa/sympa.map mail.cluster.chapril.org:/etc/postfix/transports/sympa.map export GIT_AUTHOR_EMAIL=sympa@chapril.org export GIT_AUTHOR_NAME=Sympa git -C /etc add /etc/mail/sympa/ git -C /etc commit -m 'MaJ des alias des listes' Ainsi que les //units// suivantes de Systemd : [Unit] Description=Wait for new sympa transports [Path] PathChanged=/etc/mail/sympa/aliases Unit=sympa-transports.service [Install] WantedBy=multi-user.target [Unit] Description=Push sympa transports toward postfix [Service] Type=simple ExecStart=/usr/local/bin/alias_push.sh [Install] WantedBy=multi-user.target Ce qu'on va penser à activer : systemctl enable sympa-transports.path sympa-transports.service systemctl start sympa-transports.path sympa-transports.service ==== Sur la machine relais ==== On va installer le programme suivant : #!/bin/bash cd /etc/postfix && make && postfix reload export GIT_AUTHOR_EMAIL=sympa@chapril.org export GIT_AUTHOR_NAME=Sympa git add transports/sympa.map transports/sympa.db git commit -m 'MaJ des alias des listes' Ainsi que les //units// suivantes de Systemd : [Unit] Description=Wait for new sympa transports [Path] PathChanged=/etc/postfix/transports/sympa.map Unit=sympa-transports.service [Install] WantedBy=multi-user.target [Unit] Description=Push sympa transports toward postfix [Service] Type=simple ExecStart=/usr/local/bin/alias_update.sh [Install] WantedBy=multi-user.target Ce qu'on va penser à activer : systemctl enable sympa-transports.path sympa-transports.service systemctl start sympa-transports.path sympa-transports.service