GNU Mailman

Configuration préalable

Avant de vous lancer dans l'installation d'un serveur de listes, vous devez régler quelques étapes préalables, décrites dans l'article général traitant des listes de distribution.

Installer GNU Mailman

Installez simplement le paquet correspondant pour votre distribution. Sous Debian, il s'agit du paquet mailman.

GNU Mailman utilise une liste principale pour la gestion du service de listes1). Après l'avoir installé, il faut donc créer cette liste avec la commande (il vous demandera une adresse et un mot de passe) :

# newlist mailman

Intégration à un serveur de courrier

GNU Mailman ne fonctionne pas tout seul : il doit utiliser un serveur de courrier pour lui confier la réception et la livraison des messages.

Postfix

Configuration de Postfix

Nous allons configurer Postfix pour qu'il accepte le courrier pour le domaine listes.example.com et qu'il le relaie à GNU Mailman. Il faut pour cela modifier son fichier de configuration /etc/postfix/main.cf :

relay_domains = ... listes.example.com
relay_recipient_maps = ... hash:/var/lib/mailman/data/virtual-mailman
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport

On indique ici :

  • qu'on relaie le courrier pour le domaine listes.example.com,
  • que la liste des adresses de ce domaine (la liste des listes de distribution) se trouve dans le fichier /var/lib/mailman/data/virtual-mailman,
  • qu'il ne faut transmettre à GNU Mailman qu'un message à la fois,
  • que l'outil à utiliser pour transférer le courrier est précisé dans le fichier /etc/postfix/transport.

Justement, il faut maintenant préciser l'outil de transport à utiliser. Créez ou éditez le fichier /etc/postfix/transport :

listes.example.com   mailman:

On indique ici que le courrier à destination du domaine listes.example.com doit être transféré avec l'outil mailman. Ce fichier doit être haché pour que Postfix l'utilise, avec la commande :

# postmap /etc/postfix/transport

Il faut enfin définir cet outil de transfert, dans le fichier /etc/postfix/master.cf :

mailman unix  -       n       n       -       -       pipe
  flags=FR user=list 
  argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Là, je vous renvoie au manuel de master(5) pour les détails de cette définition.

Configuration de GNU Mailman

Il faut finalement configurer GNU Mailman pour qu'il génère la liste des listes de distribution (oui, la liste des listes…) /var/lib/mailman/data/virtual-mailman. Éditez pour cela son fichier de configuration /etc/mailman/mm_cfg.py :

MTA = 'Postfix'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['listes.example.com']

Lancez la génération de cette liste, puis rechargez Postfix :

# /usr/lib/mailman/bin/genaliases
# /etc/init.d/postfix reload

Intégration à un serveur Web

L'interaction avec GNU Mailman – inscriptions, désinscriptions, consultation des archives, définition des options de liste – se fait par une interface Web. Il faut donc configurer votre serveur Web pour cela.

Apache HTTPD

Il faut créer un nouveau site virtuel associé au nom de domaine listes.example.com. Sous Debian, cela se fait en créan un fichier /etc/apache2/sites-available/listes :

<Directory /usr/lib/cgi-bin/mailman/>
    AllowOverride None
    Options ExecCGI
    AddHandler cgi-script .cgi
</Directory>
<Directory /var/lib/mailman/archives/public/>
    Options Indexes FollowSymlinks
    AllowOverride None
</Directory>
<Directory /usr/share/images/mailman/>
    AllowOverride None
</Directory>

<VirtualHost *:80 *:443>
    ServerName listes.example.com
    ServerAlias listes

    <Directory /var/lib/mailman/archives/>
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>

    Alias /pipermail/ /var/lib/mailman/archives/public/
    Alias /images/mailman/ /usr/share/images/mailman/
    ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
    ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
    ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
    ScriptAlias /create /usr/lib/cgi-bin/mailman/create
    ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
    ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
    ScriptAlias /options /usr/lib/cgi-bin/mailman/options
    ScriptAlias /private /usr/lib/cgi-bin/mailman/private
    ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
    ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
    ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
    ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
</VirtualHost>

Activez ce site virtuel, puis relancez Apache HTTPD :

# a2ensite listes
# /etc/init.d/apache2 restart

Vous pouvez maintenant utiliser l'interface d'administration de GNU Mailman http://listes.example.com/admin .

1) en tout cas, il a besoin d'une telle liste, ensuite, je ne l'ai jamais utilisée en pratique…
 
serveurs/gnu_mailman.txt · Dernière modification: Sun Jan 16 17:26:15 2011 par elessar
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Run by Debian Driven by DokuWiki