Configurer Mailman sur un système [Debian Woody] avec Exim

Linux Gazette n°91 - Juin 2003

Rich Price


Table des matières
1. Introduction
2. Fichier de configuration d'Exim
3. Le fichier de configuration d'Apache
4. Fichier de configuration de Mailman
5. Alias
6. Mot de passe du site
7. Tests

1. Introduction

Ce mini-guide pratique est la suite logique de ma tentative pour configurer Mailman sur un système Debian [Woody] qui utilise Exim comme MTA (Mail Transfer Agent, agent de messagerie). J'ai commencé à prendre des notes lorsque j'ai réalisé que les informations dont j'avais besoin se trouvaient disséminées sur un grand nombre de FAQs et de fichiers README.

Veuillez noter que la plus grande partie de ces informations apparaissent dans la documentation livrée avec le paquetage Mailman. Je les ai simplement compilées sous une forme plus cohérente et plus lisible.

Je pars du principe dès le début qu'Apache et Exim sont tous les deux installés et opérationnels. Le paquetage Mailman devrait déjà être installé avec apt-get install mailman.

Debian installe mailman avec les structures de répertoires suivantes :

/etc/mailman      est l'emplacement du fichier de configuration de mailman [mm_cfg.py].
/var/lib/mailman  est l'endroit où seront créées les listes et les archives.
/usr/lib/mailman  est l'endroit où Mailman est installé.
/usr/doc/mailman  est l'endroit où se trouve la documentation.

Notez que pour tous les fichiers installés, « user » est « root » et « group » est « liste ».


2. Fichier de configuration d'Exim

Apportez d'abord les modifications suivantes au fichier de configuration exim.

Insérez ces lignes à la fin de la section des paramètres de configuration principale (Version texte) :

# Mailman stuff
# home dir for mailman
MAILMAN_HOME=/var/lib/mailman
# wrapper script for mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/wrapper
# user and group for mailman
MAILMAN_UID=list
MAILMAN_GID=daemon

Insérez ces lignes à la fin de la section de configuration des transports (Version texte) :

#  Mailman stuff
##
## Three transports for list mail, request mail and admin mail
## respectively
## Mailman is installed in MAILMAN_HOME
## Mailman is configured to be invoked as user exim
list_transport:
        driver = pipe
        command = MAILMAN_WRAP post ${lc:$local_part}
        current_directory = MAILMAN_HOME
        home_directory = MAILMAN_HOME
        user = MAILMAN_UID
        group = MAILMAN_GID
list_request_transport:
        driver = pipe
        command = MAILMAN_WRAP mailcmd ${lc:$local_part}
        current_directory = MAILMAN_HOME
        home_directory = MAILMAN_HOME
        user = MAILMAN_UID
        group = MAILMAN_GID
list_admin_transport:
        driver = pipe
        command = MAILMAN_WRAP mailowner ${lc:$local_part}
        current_directory = MAILMAN_HOME
        home_directory = MAILMAN_HOME
        user = MAILMAN_UID
        group = MAILMAN_GID

Dans la section de configuration des redirecteurs, changez system_aliases pour qu'il ressemble à ceci (Version texte) :

system_aliases:
  driver = aliasfile
  file_transport = address_file
  pipe_transport = address_pipe
  file = /etc/aliases
  search_type = lsearch
  user = list

Insérez ces lignes dans la section de configuration des redirecteurs, juste avant la partie conernant la boîte aux lettres utilisateur (Version texte) :

# Mailman Stuff
## Directors section [this deals with local addresses]
##
## First 2 directors rewrite list-owner or owner-list to list-admin
## This is only done if the list exists.
## List existence checks are done by seeing if the file
## MAILMAN_HOME/lists//config.db exists.
list_owner_director:
   driver = smartuser
   require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
   suffix = "-owner"
   new_address = "${lc:$local_part}-admin@${domain}"
owner_list_director:
   driver = smartuser
   require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
   prefix = "owner-"
   new_address = "${lc:$local_part}-admin@${domain}"
## The next 3 directors direct admin, request and list mail to the
## appropriate transport.  List existence is checked as above.
list_admin_director:
   driver = smartuser
   suffix = -admin
   require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
   transport = list_admin_transport
list_request_director:
   driver = smartuser
   suffix = -request
   require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
   transport = list_request_transport
list_director:
   driver = smartuser
   require_files = MAILMAN_HOME/lists/${lc:$local_part}/config.db
   transport = list_transport

3. Le fichier de configuration d'Apache

Procédez ensuite aux modifications suivantes au fichier de configuration apache.

Ajoutez ces lignes à la configuration du serveur 'principal' (Version texte) :

ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
<Directory /usr/lib/mailman/cgi-bin/>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/public>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Alias /mmimages/ /usr/share/doc/mailman/images/
<Directory /usr/share/doc/mailman/images>
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Puis vérifiez la syntaxe, suite à vos modifications avec cette commande :

apache -k -f

Si tout se passe bien, vous n'obtiendrez aucun message d'erreur.


4. Fichier de configuration de Mailman

Effectuez maintenant ces changements au fichier de configuration mailman [mm_cfg.py]. N'oubliez pas, ce fichier se trouve dans /etc/mailman.

Modifiez ces deux lignes existantes comme ci-dessous :

DEFAULT_HOST_NAME	= '{serveur.messagerie}'
DEFAULT_URL      	= 'http://{serveur.web}/mailman/'

{web.server} est le nom pleinement qualifié de votre serveur et {serveur.messagerie} la partie non locale de votre adresse électronique.

Supposons par exemple que votre serveur raphael dans votre domaine bureau.org comporte un alias DNS (Domain Name Server, serveur de noms de domaine) enregistrement c de www et un enregistrement mx pour bureau.org. Dans ce cas, ni {serveur.web} ni {serveur.messagerie} ne correspondraient à raphael.bureau.org. Votre configuration serait :

DEFAULT_HOST_NAME	= 'bureau.org'
DEFAULT_URL      	= 'http://www.bureau.org/mailman/'

Ajoutez également la nouvelle ligne suivante à mm_cfg.py :

IMAGE_LOGOS       = '/mmimages/'

5. Alias

Ajoutez les lignes suivantes à /etc/aliases :

mailman-owner:	mailman
mailman:       	postmaster

Ceci suppose que vous ayez déjà un alias postmaster.


6. Mot de passe du site

Créez ensuite le mot de passe de votre site avec la commande :

/usr/lib/mailman/bin/mmsitepass

mmsitepass est le mot de passe principal de Mailman qui peut être utilisé partout où les mots de passe de l'utilisateur individuel ou de l'administrateur de la liste de diffusion sont requis. Ce mot de passe donne à l'administrateur mailman du site la capacité d'ajuster les éléments lorsque cela est nécessaire.


7. Tests

Vous êtes maintenant prêt à tester Mailman. Pour ce faire, créez une liste nommée test. Cette dernière devra être supprimée dès que vous en n'en aurez plus besoin. Si vous constatez des problèmes lors des tests, alors corrigez-les, puis reprenez cette procédure de tests depuis le début.

Tout d'abord, exécutez la tâche /usr/lib/mailman/bin/newlist et répondez comme suit à ses invites :

Enter the name of the list: test
Enter the email of the person running the list: {vous@domaine.nom}
Initial test password:  {vous-le-choisissez}
{Make note of the alias lines that are now printed.  See below.}
Hit enter to continue with test owner notification...{Enter}

Ajoutez ensuite les lignes spécifiées par newlist au fichier alias. Voici à quoi elles devraient ressembler :

## test mailing list
## created: 31-Mar-2003 root
test:            "|/var/lib/mailman/mail/wrapper post test"
test-admin:      "|/var/lib/mailman/mail/wrapper mailowner test"
test-request:    "|/var/lib/mailman/mail/wrapper mailcmd test"
test-owner:      test-admin

Attendez que Mailman vous envoie [le propriétaire de la liste] un message électronique. Ce dernier commencera par quelque chose comme :

----- start of excerpt -----

The mailing list `test' has just been created for you.  The following
is some basic information about your mailing list.

Your mailing list password is:

    {mot-de-passe}

You need this password to configure your mailing list.  You also need
it to handle administrative requests, such as approving mail if you
choose to run a moderated list.

You can configure your mailing list at the following web page:

    http://{votre.serveur.web}/mailman/admin/test

The web page for users of your mailing list is:

    http://{votre.serveur.web}/mailman/listinfo/test

----- end of excerpt -----

Après réception de ce message, allez sur la page web http://{votre.serveur.web}/mailman/admin/test et connectez-vous avec le mot de passe fourni. À ce moment, vous pouvez revoir la section General Options de cette page web d'administration. [Les autres sections de cette page web méritent aussi un coup d'œil.] Ajoutez du texte dans les sections de description pour vous familiariser avec la façon dont les mises à jour sont effectuées. [Celle-ci est dans l'ensemble assez simple et auto-documenté.] Lorsque vous avez terminé, enregistrez vos mises à jour et fermez la déconnectez-vous.

Allez ensuite sur la page web http://{votre.serveur.web}/mailman/listinfo/test. Utilisez cette page pour vous abonner à la liste.

Vous devriez bientôt recevoir un message électronique de demande de confirmation. Suivez les instructions figurant sur ce message pour confirmer votre demande d'abonnement.

Envoyez un message électronique à la liste. Si vous l'obtenez, l'installation a réussi.

Rich Price utilise des ordinateurs depuis environ 35 ans et Linux depuis environ 10 ans. Et il n'est lassé ni des uns ni de l'autre encore.

Copyright © 2003, Rich Price.

Copying license http://www.linuxgazette.com/copying.html

Paru dans le n°91 de la Linux Gazette de juin 2003.

Traduction française par Guillaume Lelarge .

Relecture de la traduction française par Joëlle Cornavin .