diff --git a/HowtoSympa.md b/HowtoSympa.md index 4853bd9c..5a742c41 100644 --- a/HowtoSympa.md +++ b/HowtoSympa.md @@ -5,7 +5,8 @@ title: Howto Sympa * Documentation : -[Sympa](http://www.sympa.org/) est un logiciel de gestion de listes de diffusion. +[Sympa](http://www.sympa.org/) est un logiciel libre de gestion de listes de diffusion. Il est développé en Perl depuis plus de 20 ans par des développeurs français. +Il s'utilise avec une base de données [MySQL](HowtoMySQL) ou [PostgreSQL](HowtoPostgreSQL), et peut aller lire des données dans un annuaire [LDAP](HowtoOpenLDAP). ## Installation @@ -34,40 +35,63 @@ Nov 05 20:34:36 sympa_msg[18009]: notice main:: Sympa/msg 6.2.16 Started Nov 05 20:34:36 systemd[1]: Started SYMPA mailing list manager. ~~~ -`/etc/sympa/sympa/sympa.conf` : +Il faut ensuite ajuster le paramètre suivant dans `/etc/sympa/sympa/sympa.conf` : ~~~ use_fast_cgi 1 ~~~ -`/etc/postfix/main.cf` : +Et ajouter la gestion des alias Sympa dans `/etc/postfix/main.cf` : ~~~ alias_maps = hash:/etc/aliases hash:/etc/mail/sympa/aliases alias_database = hash:/etc/aliases hash:/etc/mail/sympa/aliases ~~~ +Et s'assurer d'avoir les alias de base dans `/etc/mail/sympa/aliases` : + +~~~ +## List aliases used for the sympa mailing-list manager +#-- SYMPA begin +## Aliases used for the sympa mailing-list manager +sympa: "|/usr/lib/sympa/bin/queue sympa" +sympa-request: "|/usr/lib/sympa/bin/queue sympa" +sympa-owner: "|/usr/lib/sympa/bin/bouncequeue sympa" +listmaster: root +#-- SYMPA end +~~~ + ## Configuration -### Apache - -VirtalHost : +Fichiers de configuration : ~~~ - - - ServerName lists.example.com - - RedirectMatch ^/$ /wws/ - - #Include /etc/apache2/ssl/sympa.conf - - +/etc/sympa/ +├── auth.conf +├── cookie +├── cookies.history +├── create_list_templates +├── custom_actions +├── custom_conditions +├── data_sources +├── data_structure.version +├── facility +├── families +├── global_task_models +├── list_task_models +├── mail_tt2 +├── scenari +├── search_filters +├── sympa +│   ├── sympa.conf +│   └── sympa.conf.bin +├── sympa.conf-smime.in +├── topics.conf +└── web_tt2 ~~~ -Let's Encrypt - -### Sympa +La configuration principale se trouve dans le fichier `/etc/sympa/sympa/sympa.conf`. +Voici la configuration minimum à ajuster : ~~~ domain lists.example.com @@ -77,11 +101,37 @@ wwsympa_url http://lists.example.com/wws lang fr ~~~ -redémarrer sympa **et** apache ! +> *Note* : en cas de changement de configuration de Sympa, il faut redémarrer Sympa **et** Apache (à cause des process FastCGI). + +### Apache + +Vous devez créer un VirtualHost du type après avoir désactivé la configuration Sympa globale via `a2disconf sympa` : + +~~~ + + ServerName lists.example.com + RedirectMatch ^/$ /wws/ + #Include /etc/apache2/ssl/sympa.conf + + + Alias /static-sympa /var/lib/sympa/static_content + + Require all granted + + ScriptAlias /wws /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi + + Require all granted + + + + +~~~ + +On conseille bien sûr de l'activer en [HTTPS](HowtoSSL), par exemple avec [Let's Encrypt](HowtoLetsEncrypt). ### DKIM -Génération clés DKIM : +Génération des clés DKIM : ~~~ # opendkim-genkey -D /etc/ssl/private/ -d lists.example.com -s sympa2018 -v @@ -89,7 +139,7 @@ Génération clés DKIM : # chown sympa:sympa /etc/ssl/private/foo_lists.example.com.key ~~~ -`sympa.conf` : +On active ensuite dans `/etc/sympa/sympa/sympa.conf` : ~~~ dkim_feature on @@ -98,19 +148,48 @@ dkim_signer_domain lists.example.com dkim_selector sympa2018 ~~~ +## Plomberie + +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 : + +~~~ +foo: "| /usr/lib/sympa/bin/queue foo" +foo-request: "| /usr/lib/sympa/bin/queue foo-request" +foo-editor: "| /usr/lib/sympa/bin/queue foo-editor" +foo-subscribe: "| /usr/lib/sympa/bin/queue foo-subscribe" +foo-unsubscribe: "| /usr/lib/sympa/bin/queue foo-unsubscribe" +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.) +* `/var/lib/sympa/arc/` : archives des listes de diffusion générées avec [MHonArc](https://www.mhonarc.org/) +* `/var/lib/sympa/list_data/` : données de configuration des listes de diffusion +* `/usr/share/sympa/bin/` et `/usr/lib/sympa/bin/` : scripts Perl et binaires +* `/usr/share/sympa/lib/` et : bibliothèques Perl +* `/usr/share/sympa/default/` : templates + ## FAQ ### List::load() No such robot -J'ai des messages de ce type alors que example.com n'est pas/plus du tout domaine : +J'ai des messages de ce type alors que *example.com* n'est pas/plus du tout domaine : ~~~ Nov 9 18:35:18 serveur task_manager[7285]: List::load() No such robot (virtual domain) example.com ~~~ -Cela pourrait venir de tâches à nettoyer dans /var/spool/sympa/task/ -Au passage, vérifier en base de données qu'il n'y a pas/plus rien relatif à example.com dans subscriber_table, session_table, logs_table. +Cela pourrait venir de tâches à nettoyer dans `/var/spool/sympa/task/`. +Au passage, vérifier en base de données qu'il n'y a pas/plus rien relatif à *example.com* dans subscriber_table, session_table, logs_table. ### Installation sous Debian 6 @@ -133,4 +212,43 @@ Si vous avez des erreurs Apache du type : [Assurez-vous](https://bugs.debian.org/682562) d'avoir activé `use_fast_cgi`. +### Prise en compte des changements de configuration + +En cas de changement de configuration de Sympa, il faut redémarrer Sympa **et** Apache (à cause des process FastCGI). + +### Données dans LDAP + +Après avoir créé une liste, on peut configurer un annuaire LDAP en allant dans `Configurer la liste` puis `Définition des sources de données`. +Il pourra être nécessaire de cliquer sur `Mise à jour` pour mettre à jour les données LDAP. + +### Unable run newaliases / Failed to remove aliases + +Lors de l'ajout / suppression de listes, si vous obtenez des erreurs du type : + +~~~ +wwsympa[19038]: [robot lists.example.com] [user listmaster@lists.example.com] [list test] Unable run newaliases +wwsympa[19027]: Failed to remove aliases ; status 6 : Ioctl() inappropré pour un périphérique +~~~ + +Un contournement peut être d'utiliser directement `/usr/lib/sympa/bin/alias_manager.pl` : + +~~~ +# /usr/lib/sympa/bin/alias_manager.pl -h +Usage: + alias_manager.pl add | del listname domain +~~~ + +### Une liste vers une autre non archivée ? + +C'est probablement à cause de la présence de l'entête `X-No-Archive: yes` ! + +### mails non reçus par une liste ? + +Voir dans `sympa.pl`, certains filtres basiques sont effectués, notamment : + +~~~ +if ($sender =~ /^(mailer-daemon|sympa|listserv|mailman|majordomo|smartlist|$conf_email)(\@|$)/mio) { +~~ + +