révision doc pour Sympa
This commit is contained in:
parent
ef6545b951
commit
bd83446c50
247
HowtoSympa.md
247
HowtoSympa.md
|
@ -91,26 +91,6 @@ WantedBy=multi-user.target
|
|||
|
||||
Attention, il ne faut pas mettre l'option `ProtectSystem=full` (paramètre par défaut sous Debian 10) car cela va empêcher la modification du fichier `/etc/mail/sympa/aliases`.
|
||||
|
||||
Et ajouter la gestion des alias Sympa dans `/etc/postfix/main.cf` (attention `/etc/mail/sympa/aliases` doit être avant `/etc/aliases` pour que Sympa récupère bien les bounces des listes) :
|
||||
|
||||
~~~
|
||||
alias_maps = hash:/etc/mail/sympa/aliases hash:/etc/aliases
|
||||
alias_database = hash:/etc/mail/sympa/aliases hash:/etc/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
|
||||
|
||||
|
@ -146,9 +126,8 @@ Voici la configuration minimum à ajuster :
|
|||
|
||||
~~~
|
||||
domain lists.example.com
|
||||
listmaster listmaster@lists.example.com
|
||||
listmaster postmaster@example.com
|
||||
wwsympa_url http://lists.example.com/wws
|
||||
|
||||
lang fr
|
||||
~~~
|
||||
|
||||
|
@ -250,7 +229,7 @@ dkim_signature_apply_on any
|
|||
|
||||
### scenari
|
||||
|
||||
De nombreux scénarii (configurations de distribution des listes) sont proposés (et amendables) par défaut (cf. `/usr/share/sympa/default/scenari/`), mais il est possible de préparer un ou plusieurs scénarios pour des besoins spécifiques et récurrents. Voici un exemple qui supprime simplement le paramètre `quiet` afin de recevoir une notification en cas de rejet.
|
||||
De nombreux scénarii (configurations de distribution des listes) sont proposés par défaut (cf. `/usr/share/sympa/default/scenari/`), mais il est possible de préparer un ou plusieurs scénarios pour des besoins spécifiques et récurrents en les plaçant dans `/etc/sympa/scenari/`. Voici un exemple qui supprime simplement le paramètre `quiet` afin de recevoir une notification en cas de rejet.
|
||||
|
||||
~~~
|
||||
# cat /etc/sympa/scenari/send.confidential-not-quiet
|
||||
|
@ -262,29 +241,71 @@ is_owner([listname],[sender]) smtp,dkim,smime,md5 -> do_it
|
|||
true() smtp,dkim,md5,smime -> reject
|
||||
~~~
|
||||
|
||||
Plus de précisions sur la syntaxe et les options est disponible dans la [documentation officielle des scénarios](https://www.sympa.community/manual/customize/basics-scenarios.html).
|
||||
Plus de précisions sur la syntaxe et les options sont disponibles dans la [documentation officielle des scénarios](https://www.sympa.community/manual/customize/basics-scenarios.html).
|
||||
|
||||
### Configuration en mode multi-domaines
|
||||
|
||||
**Note :*** nous n'utilisons pas cette configuration en mode multi-domaines en production
|
||||
|
||||
Sympa permet d'utiliser plusieurs domaines différentes du type `list.example.com`, `list.example.org` etc.
|
||||
|
||||
Dans la configuration principale `/etc/sympa/sympa/sympa.conf` on va « désactiver » certaines directives :
|
||||
|
||||
~~~
|
||||
domain sympa
|
||||
sendmail_aliases none
|
||||
home /var/lib/sympa/expl
|
||||
etc /etc/sympa
|
||||
~~~
|
||||
|
||||
et l'on va configurer différents répertoires :
|
||||
|
||||
~~~
|
||||
/etc/sympa/
|
||||
├── list.example.com/
|
||||
├── list.example.org/
|
||||
~~~
|
||||
|
||||
avec `/etc/sympa/list.example.com/robot.conf` :
|
||||
|
||||
~~~
|
||||
http_host list.example.com
|
||||
wwsympa_url https://list.example.com/wws
|
||||
title Listes example.com
|
||||
lang fr
|
||||
listmaster postmaster@example.com
|
||||
...
|
||||
~~~
|
||||
|
||||
et l'arborescence suivante :
|
||||
|
||||
~~~
|
||||
/var/lib/sympa/expl/
|
||||
├── list.example.com/
|
||||
├── list.example.org/
|
||||
~~~
|
||||
|
||||
|
||||
## Configuration de Postfix
|
||||
|
||||
Voici les répertoires importants pour Sympa :
|
||||
Pour la réception d'emails, le principe de base est que les emails sont *pipés* vers le programme `/usr/lib/sympa/bin/queue`
|
||||
sauf pour les emails de « rebond » qui sont *pipés* vers le programme `/usr/lib/sympa/bin/bouncequeue`.
|
||||
|
||||
* `/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
|
||||
### Configuration en mode non virtuel
|
||||
|
||||
Les emails d'administration (changement de mot de passe, modération, etc.) sont *pipés* vers `/usr/lib/sympa/bin/queue sympa` grâce à des alias :
|
||||
|
||||
### Configuration avec un domaine unique (non virtuel)
|
||||
~~~
|
||||
sympa: "|/usr/lib/sympa/bin/queue sympa"
|
||||
#sympa-request: "|/usr/lib/sympa/bin/queue sympa"
|
||||
#sympa-owner: "|/usr/lib/sympa/bin/bouncequeue sympa"
|
||||
bounce: "|/usr/lib/sympa/bin/bouncequeue sympa"
|
||||
#listmaster: "|/usr/lib/sympa/bin/queue sympa"
|
||||
listmaster: postmaster
|
||||
~~~
|
||||
|
||||
**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 :
|
||||
Les emails pour une liste de diffusion *foo* sont envoyés à `foo@example.com`.
|
||||
Les alias Postfix suivants redirigent vers les différents programmes :
|
||||
|
||||
~~~
|
||||
foo: "| /usr/lib/sympa/bin/queue foo"
|
||||
|
@ -297,43 +318,47 @@ foo-owner: "| /usr/lib/sympa/bin/bouncequeue foo"
|
|||
|
||||
Le message passe ensuite par différentes files d'attente suivant la configuration (modération, etc.).
|
||||
|
||||
Afin de distinguer les bounces de Postfix de ceux de Sympa, configuer `/etc/aliases` :
|
||||
**Attention 1 :** 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 à ce domaine.
|
||||
|
||||
```diff
|
||||
-bounce: root
|
||||
+bounce: postmaster
|
||||
```
|
||||
**Attention 2:** vous ne devez pas avoir d'alias local pour `bounce` car il est utilisé par Sympa pour le [VERP](https://www.sympa.community/manual/customize/bounce-management.html#verp), vérifiez notamment qu'il n'est pas utilisé dans la directive Postfix `bounce_notice_recipient`.
|
||||
|
||||
Puis exécuter `postalias /etc/aliases`.
|
||||
|
||||
Et configurer `/etc/postfix/main.cf` :
|
||||
### Configuration en mode virtuel avec un domaine dédié
|
||||
|
||||
```diff
|
||||
-bounce_notice_recipient = bounce
|
||||
-2bounce_notice_recipient = bounce
|
||||
+bounce_notice_recipient = postmaster
|
||||
+2bounce_notice_recipient = postmaster
|
||||
```
|
||||
C'est la configuration conseillée : vous avez un domaine du type `list.example.com` utilisé uniquement pour Sympa.
|
||||
|
||||
Vérifier la configuration de Postfix et le redémarrer :
|
||||
Il suffit alors de définir un transport via `/etc/postfix/transport` :
|
||||
|
||||
~~~
|
||||
postconf >/dev/null
|
||||
systemctl restart postfix
|
||||
systemctl status postfix
|
||||
list.example.com sympa:
|
||||
~~~
|
||||
|
||||
|
||||
### 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 :
|
||||
Et un process `sympa` dans `/etc/postfix/master.cf` :
|
||||
|
||||
~~~
|
||||
# cat <<EOF >>/etc/sympa/list_aliases.tt2
|
||||
sympa unix - n n - - pipe
|
||||
flags=FR user=sympa
|
||||
argv=/var/lib/sympa/bin/postfix-to-sympa.pl ${nexthop} ${mailbox}
|
||||
~~~
|
||||
|
||||
Où [postfix-to-sympa.pl](https://www.sympa.org/contribs/index#easy_configuration_for_postfix) est un script Perl (avec `$DEFAULT_DOMAIN` à ajuster) qui va notamment renvoyer vers les commandes Sympa `queue` et `bouncequeue`. Merci Bastien Roucaries pour ce script :)
|
||||
|
||||
Il faut aussi ajouter la directive suivante dans `/etc/postfix/main.cf` :
|
||||
|
||||
~~~
|
||||
sympa_destination_recipient_limit = 1
|
||||
~~~
|
||||
|
||||
### Configuration en mode virtuel sans domaine dédié
|
||||
|
||||
Si l'on utilise un même domaine pour recevoir des emails et Sympa, il va falloir gérer des sortes d'alias virtuels pour ne renvoyer vers Sympa que ce qui est nécessaire.
|
||||
|
||||
Donc a priori le domaine virtuel est déjà configuré dans Postfix (par exemple via LDAP), sinon on peut l'ajouter via `virtual_mailbox_domains`.
|
||||
|
||||
On configure un template pour les « alias virtuels » :
|
||||
|
||||
~~~
|
||||
# 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 %]
|
||||
|
@ -341,104 +366,64 @@ Aliases génériques des listes :
|
|||
#[% 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 :
|
||||
On ajoute les directives suivantes dans `/etc/sympa/sympa/sympa.conf` :
|
||||
|
||||
~~~
|
||||
cat <<EOF >>/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 :
|
||||
On crée 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
|
||||
# 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 :
|
||||
On s'assure que `/etc/sympa/sympa_transport` contient :
|
||||
|
||||
~~~
|
||||
cat <<EOF >>/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.
|
||||
|
||||
Afin de dinstinguer les bounces de Postfix de ceux de Sympa, changer l'alias de bounce :
|
||||
|
||||
```diff
|
||||
-bounce_notice_recipient = bounce
|
||||
-2bounce_notice_recipient = bounce
|
||||
+bounce_notice_recipient = postmaster
|
||||
+2bounce_notice_recipient = postmaster
|
||||
```
|
||||
|
||||
Supprimer l'alias `bounce` de `/etc/aliases` :
|
||||
|
||||
```diff
|
||||
-bounce: root
|
||||
```
|
||||
|
||||
Puis exécuter `postalias /etc/aliases`.
|
||||
|
||||
Ajouter les listes de base :
|
||||
|
||||
~~~
|
||||
cat <<EOF >>/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` :
|
||||
On ajoute à `/etc/postfix/master.cf` :
|
||||
|
||||
~~~
|
||||
postmap hash:/etc/sympa/sympa_transport
|
||||
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}
|
||||
~~~
|
||||
|
||||
Vérifier que les droits sont bien en `644` et que le propriétaire/groupe est bien `sympa:sympa` :
|
||||
Et on ajoute les directives à `/etc/postfix/main.cf` :
|
||||
|
||||
~~~
|
||||
ls -l /etc/sympa/
|
||||
~~~
|
||||
virtual_mailbox_maps = (...) hash:/etc/sympa/sympa_transport
|
||||
transport_maps = (...) hash:/etc/sympa/sympa_transport
|
||||
~~~
|
||||
|
||||
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
|
||||
~~~
|
||||
**Attention :** vous ne devez pas avoir d'alias virtuel pour `bounce` car il est utilisé par Sympa pour le [VERP](https://www.sympa.community/manual/customize/bounce-management.html#verp), vérifiez notamment qu'il n'est pas utilisé dans la directive Postfix `bounce_notice_recipient`.
|
||||
|
||||
|
||||
## Plomberie
|
||||
|
||||
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
|
||||
|
||||
La configuration d'une liste se trouve à la fois :
|
||||
|
||||
* dans le répertoire `/var/lib/sympa/list_data/foo/` notamment le fichier `config`
|
||||
|
@ -613,6 +598,4 @@ notice Sympa::DatabaseDriver::MySQL::update_field() ALTER TABLE user_table CHANG
|
|||
...
|
||||
~~~
|
||||
|
||||
### Script pour simplifier la configuration avec Postfix
|
||||
|
||||
Bastien nous a signalé qu'il avait écrit un script pour simplifier la configuration avec Postfix : <https://www.sympa.org/contribs/index#easy_configuration_for_postfix> nous le testerons prochainement, merci :)
|
||||
|
|
Loading…
Reference in a new issue