Majordomo

Article pour l'Echo de Linux (Juillet 1996)

Eric Dumas (dumas@freenix.fr)

Résumé

Le but de cet article est de présenter l'outil majordomo qui permet de gérer des listes de courrier éléctronique d'une manière automatique. Cet outil écrit en langage perl permet d'administrer très simplement ces listes, avec une intervention minimale de la part de l'administrateur.

Cet article présentera successivement l'installation, la configuration et enfin l'utilisation de cet outils. Les exemples présentés sont des exemples réels pris à partir de la mailing liste du journal.


Sommaire


1 - Outils requis

Pour installer majordomo, il est nécessaire de récupérer l'archive majordomo-1.93.tar.gz (c'est la dernière version à l'heure ou j'écris ces mots). Le site principal est
ftp://ftp.greatcircle.com/pub/majordomo/. Toutefois, il existe de nombreux miroirs en France dont ftp://ftp.ibp.fr/pub/unix/mail/majordomo/.

Une fois l'archive récupérée, il est nécessaire (outre le fait d'avoir un compilateur C) de posséder Perl installée. Enfin effet, majordomo est écrit en Perl (version 4.036). Il devrait également fonctionner avec les versions 5.001a et supérieure toutefois, il ne fonctionnera pas avec la version 5.001. Si vous utilisez majordomo avec une version 5 de Perl, il faut modifier les sources en raison d'une incompatibilité. Le principe de mettre \@ à la place de @ dans les chaînes de caractères. L'opération étant assez pénible à effectuer, j'ai fait un petit patch. Pour le récupérer, cliquer ici.

Si vous ne possédez pas perl, vous pouvez le récupérer sur son site majeur ftp.netlabs.com/pub/outgoing/perl5.0. La dernière version est la 5.003 et semble fonctionner (la liste crée pour ce journal tourne avec !).

2 - Installation et Configuration

Une fois perl installé et après que l'archive ait été désarchivée, il ne nous reste plus qu'à compiler puis installer majordomo.

2.1 - Compilation

Il est nécessaire de compiler le programme wrapper, qui est chargé de lancer les différents programmes perl. Il suffit d'éditer le fichier Makefile et de configurer les chemins d'accès, etc. Je vous conseille d'installer majordomo dans le répertoire /usr/local/mail/majordomo. De même, il est conseillé de spécifier que le fichier de configuration de majordomo soit dans ce répertoire plutôt que dans /etc.

2.2 - Installation

Pour effectuer l'installation, passer en super-utilisateur et lancer make install. Tous les programmes seront installés dans le répertoire que vous avez spécifié. L'installation des programmes est terminée. Il ne reste plus qu'à configurer l'outil, ce qui n'est pas forcément une simple affaire.

2.3 - Configuration

L'opération de configuration est assez simple. Il suffit d'adapter le fichier sample.cf en fonction de la configuration locale. Il est ensuite nécessaire de le sauvegarder sous le nom de majordomo.cf.

Voila, majordomo est prêt... enfin presque ! Une fois les programmes installés, et majordomo configuré, il est ensuite nécessaire d'effectuer certaines opération d'administration système :

Le principe est que tout mail envoyé à majordomo est automatiquement traité par le programme. Wrapper n'est là que pour redistribuer le message en tout sécurité.

3 - Utilisation

Bien... c'est prêt. Envoyons notre premier courrier électronique :
gandalf# mail majordomo
Subject:
help
Quelques instants plus tard, vous allez recevoir la liste des commandes que vous pouvez utiliser. Voici une description des commandes utilisables (les champs entre crochets sont optionnels) : Prenons un exemple concret : la liste echo-linux. Pour y souscrire, il suffit de faire :
mail majordomo@rd.lectra.fr
subscribe echo-linux zorglub@truc.glob.ici
Vous recevrez quelques instants plus tard un courrier électronique avec le message d'introduction de la liste. Ensuite, une liste est quand même faite pour y écrire. Dans ce cas, l'adresse electronique est normalement inscrite dans le message introductif : ce n'est pas la même que celle pour souscrire !

Les délais de réponses sont très variables. Tout dépend de la charge de la machine (car majordomo étant écrit en Perl, cela a tendance à charger un peu la machine), de sa puissance. Enfin, la rapidité dépend également de la capacité d'envoie du courrier électronique du site. Il faut savoir qu'une liste très active et avec beaucoup de personnes est très consomatrice de ressources.

4 - Création d'une liste

Pour bien comprendre le mécanisme de création d'une nouvelle liste, je vais prendre la création de la liste echo-linux.

4.1 - Aliases

Dans un premier temps, il est nécessaire d'éditer le fichier /etc/aliases pour y rajouter la liste :
# Liste echo-linux
echo-linux-outgoing: :include:/usr/local/mail/lists/echo-linux
echo-linux:"|/usr/local/mail/majordomo/wrapper resend -l echo-linux -h rd.lectra.fr -r echo-linux echo-linux-outgoing"
owner-echo-linux: dumas@rd.lectra.fr
echo-linux-request: "|/usr/local/mail/majordomo/wrapper request-answer echo-linux"
Pour écrire dans la liste, il suffit de faire
mail echo-linux@rd.lectra.fr
Subject: test

Ha que coucou !
L'alias qui est le plus important est celui ayant pour nom echo-linux, car c'est à lui que l'on envoie les messages. Les options données spécifient :

4.2 - Configuration

Une fois les aliases correctement configuré, il est nécessaire de créer la liste au niveau de majordomo. Dans le répertoire /usr/local/mail/lists, il suffit de créer trois fichiers (Rq : nous sommes dans un cas simple) : Ce fichier de configuration est particulièrement bien commenté, et ne sera pas commenté ici. Majordomo permet de gérer également des listes dites « modérées ». Dans ce cas, le courrier est tout d'abord envoyé au modérateur. Il est le seul habilité à envoyer un courrier dans la liste.

5 - Références

Cet article est une courte introduction à majordomo. Toutefois, cet outil est beaucoup plus puissant. Vous pouvez consultez les documents suivants pour plus de renseignements :