diff --git a/HowtoSympa.md b/HowtoSympa.md index 961c2ab6..c956bc02 100644 --- a/HowtoSympa.md +++ b/HowtoSympa.md @@ -228,10 +228,13 @@ dkim_selector sympa2018 On peut ainsi configurer DKIM dans les paramètres de chaque liste de diffusion. -# Plomberie +# Configuration de Postfix -Les emails d'administration (changement de mot de passe, modération, etc.) sont envoyés à `sympa@lists.example.com`, -grâce à un alias Postfix, ils sont *pipés* vers le programme `/usr/lib/sympa/bin/queue sympa` +## Configuration avec un domaine unique (non virtuel) + +**Attention :** Si ce domaine est déjà défini comme virtuel dans Postfix, cela cassera la réception de mails sur boîtes virtuelles associées. + +Les emails d'administration (changement de mot de passe, modération, etc.) sont envoyés à `sympa@lists.example.com`, grâce à un alias Postfix, ils sont *pipés* vers le programme `/usr/lib/sympa/bin/queue sympa`. Les emails pour une liste de diffusion *foo* sont envoyés à `foo@lists.example.com`. Les alias Postfix suivants les redirigent vers différents programmes : @@ -247,7 +250,6 @@ foo-owner: "| /usr/lib/sympa/bin/bouncequeue foo" Le message passe ensuite par différentes files d'attente suivant la configuration (modération, etc.). - Voici les répertoires importants pour Sympa : * `/var/spool/sympa/` : files d'attente (modération etc.) @@ -258,6 +260,103 @@ Voici les répertoires importants pour Sympa : * `/usr/share/sympa/default/` : templates +## Configuration multi-domaines virtuels + +**Attention :** Cette section est nouvelle et est en test. + +Note : On considère que le domaine virtual est déjà configuré dans Postfix. + +Aliases génériques des listes : + +~~~ +# cat <>/etc/sympa/list_aliases.tt2 +#--- [% list.name %]@[% list.domain %]: list transport map created at [% date %] +[% list.name %]@[% list.domain %] sympa:[% list.name %]@[% list.domain %] +[% list.name %]-request@[% list.domain %] sympa:[% list.name %]-request@[% list.domain %] +[% list.name %]-editor@[% list.domain %] sympa:[% list.name %]-editor@[% list.domain %] +#[% list.name %]-subscribe@[% list.domain %] sympa:[% list.name %]-subscribe@[%list.domain %] +[% list.name %]-unsubscribe@[% list.domain %] sympa:[% list.name %]-unsubscribe@[% list.domain %] +[% list.name %][% return_path_suffix %]@[% list.domain %] sympabounce:[% list.name %]@[% list.domain %] +<< EOF +~~~ + +Ajout des infos pour que Sympa mette-à-jour les boîtes virtuelles de Postfix : + +~~~ +cat <>/etc/sympa/sympa/sympa.conf +sendmail_aliases /etc/postfix/sympa_transport +aliases_program postmap +aliases_db_type hash +<< EOF +~~~ + +Créer la base de données des boîtes virtuelles pour Postfix : + +~~~ +touch /etc/sympa/sympa_transport +chmod 644 /etc/sympa/sympa_transport +chown sympa: /etc/sympa/sympa_transport +/usr/lib/sympa/bin/sympa_newaliases.pl +~~~ + +Ajouter aux transports de Postfix : + +~~~ +cat <>/etc/postfix/master.cf +sympa unix - n n - - pipe + flags=hqRu null_sender= user=sympa argv=/usr/lib/sympa/bin/queue ${nexthop} +sympabounce unix - n n - - pipe + flags=hqRu null_sender= user=sympa argv=$/usr/lib/sympa/bin/bouncequeue ${nexthop} +~~~ + +Editer le main.cf de Postfix et ajouter aux options : + +~~~ +virtual_mailbox_maps = (...) hash:/etc/sympa/sympa_transport +transport_maps = (...) hash:/etc/sympa/sympa_transport + +~~~ + +**Attention :** `mydestination` ne doit pas contenir le domaine virtuel. + +Ajouter les listes de base : + +~~~ +cat <>/etc/sympa/sympa_transport +sympa@example.org sympa:sympa@example.org +listmaster@example.org sympa:listmaster@example.org +bounce@example.org sympabounce:sympa@example.org +abuse-feedback-report@example.org sympabounce:sympa@example.org +~~~ + +Mettre-à-jour la base de données avec `postmap` : + +~~~ +postmap hash:/etc/sympa/sympa_transport +~~~ + +Vérifier que les droits sont bien en `644` et que le propriétaire/groupe est bien `sympa:sympa` : + +~~~ +ls -l /etc/sympa/ +~~~ + +Vérifier la configuration de Postfix et le redémarrer : + +~~~ +postconf >/dev/null +systemctl restart postfix +systemctl status postfix +~~~ + +Enfin, redémarrer Sympa : + +~~~ +systemctl restart sympa +systemctl status sympa +~~~ + + # FAQ ## List::load() No such robot