====== GNU Mailman ====== [[http://www.gnu.org/software/mailman/|GNU Mailman]] est un [[services:listes de distribution|serveur de listes de distribution]]. ===== 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'[[services:listes de distribution|article général traitant des listes de distribution]]. ===== Installer GNU Mailman ===== Installez simplement le paquet correspondant pour votre distribution. Sous [[systèmes:Debian]], il s'agit du paquet ''mailman''. GNU Mailman utilise une liste principale pour la gestion du service de listes((en tout cas, il a besoin d'une telle liste, ensuite, je ne l'ai jamais utilisée en pratique…)). 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 [[services:web|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'' : AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Options Indexes FollowSymlinks AllowOverride None AllowOverride None ServerName listes.example.com ServerAlias listes Options Indexes FollowSymLinks AllowOverride None 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/ 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 .