Manpages

NOM

enemies−of−carlotta − Gestionnaire simple de listes de diffusion

SYNOPSIS

enemies−of−carlotta [options] [adresses]

DESCRIPTION

enemies−of−carlotta est un gestionnaire simple de listes de diffusion.

Enemies of Carlotta conserve toutes les données des listes dans le répertoire ~/.enemies−of−carlotta. Celui−ci sera créé automatiquement lors de la création de la première liste. Le traitement des courriels par le gestionnaire de listes doit être configuré manuellement. Les détails peuvent varier d’un système à l’autre. Pour QMail et Postfix, voir ci−dessous.

Chaque liste possède un ou plusieurs propriétaires, qui modèrent également les inscriptions ou certains messages, voire tous. Sur les listes non modérées, les propriétaires de la liste sont chargés de répondre aux questions concernant la liste. Sur les listes totalement modérées, ils doivent approuver chaque message avant qu’il ne soit envoyé sur la liste. Sur les liste où posting=auto, les messages des abonnés sont automatiquement envoyés à la liste, et les modérateurs n’ont besoin d’approuver que les messages qui ne proviennent pas des abonnés.

OPTIONS

−−name=foo [AT] example.com

préciser la liste sur laquelle la commande doit être effectuée. La plupart des options doivent être accompagnées du nom de la liste concernée. Avec les options −−edit, −−subscribe, −−unsubscribe et −−list, le nom peut être abrégé en enlevant le signe @ et le domaine.

−−create

créer une nouvelle liste de diffusion. Au moins un propriétaire doit être précisé à l’aide de −−owner.

−−owner=adresse

ajouter un propriétaire à la liste lors de sa création

−−moderator=adresse

ajouter un modérateur à la liste lors de sa création ou de son édition

−−language=code−de−la−langue

configurer le code de la langue utilisé pour récupérer les fichiers modèles. Le code peut être vide (l’anglais sera utilisé par défaut) ou composé de deux lettres comme fr ou es.

−−cleaning−woman

gérer les adresses invalides et nettoyer quelques autres éléments. La commande enemies−of−carlotta −−cleaning−woman doit être lancée périodiquement, comme une fois par heure, pour nettoyer l’ensemble des listes de diffusion.

−−destroy

détruire une liste

−−edit

modifier la configuration d’une liste

−−subscription=type

définir le mode d’abonnement à free (libre) ou moderated (modéré) lors de la création de la liste. À utiliser en combinaison avec −−edit ou −−create.

−−posting=type

définir le mode d’envoi à free (libre), auto (automatique) ou moderated (modéré). À utiliser en combinaison avec −−edit ou −−create.

−−archived=yes−ou−no

définir si les messages de la liste doivent être archivés dans le sous−répertoire archive−box du répertoire de la liste, lui−même présent dans le répertoire ~/.enemies−of−carlotta. Utiliser yes (oui) ou no (non).

−−mail−on−subscription−changes=yes−ou−no

définir si les propriétaires de la liste doivent être avertis lors d’un abonnement ou d’un désabonnement. Utiliser yes (oui) ou no (non). La valeur par défaut est no.

−−mail−on−forced−unsubscription=yes−ou−no

définir si les propriétaires de la liste doivent être avertis lorsque quelqu’un est retiré de la liste en raison d’une adresse trop souvent invalide. Utiliser yes (oui) ou no (non). La valeur par défaut est no.

−−ignore−bounce=yes−ou−no

définir si les renvois pour adresse invalide doivent être ignorés. Utiliser yes (oui) ou no (non). La valeur par défaut est no.

−−list

lister l’ensemble des abonnés à une liste.

−−subscribe

ajouter des abonnés à la liste. Les arguments qui ne sont pas des options sont les adresses à abonner. Les adresses ajoutées de cette façon ne recevront pas de demande de confirmation.

−−unsubscribe

enlever des abonnés de la liste. Les arguments qui ne sont pas des options sont les adresses à désabonner. Les adresses enlevées de cette manière ne recevront pas de demande de confirmation.

−−incoming

traiter un message entrant sur l’entrée standard. L’adresse de l’expéditeur de l’enveloppe SMTP doit être précisée par la variable d’environnement SENDER et l’adresse du destinataire de l’enveloppe SMTP doit être précisée par la variable d’environnement RECIPIENT. (QMail et Postfix traitent cela automatiquement.)

−−skip−prefix=chaîne

retirer chaîne du début de l’adresse de destination avant de l’analyser pour déterminer à quelle liste le message est destiné. Ceci permet le traitement des domaines virtuels avec QMail et Postfix, voir ci−dessous.

−−domain=nom.du.domaine

remplacer le nom de domaine par nom.du.domaine dans l’adresse de destination pour déterminer à quelle liste le message est destiné. Ceci permet le traitement des domaines virtuels avec QMail et Postfix.

−−is−list

déterminer si l’adresse indiquée par −−name fait référence à une liste valide. Le code de sortie zéro (succès) est retourné si c’est le cas, un (échec) dans le cas contraire.

−−sendmail=chemin

utiliser chemin au lieu de /usr/sbin/sendmail pour envoyer des courriels via une interface en ligne de commande. Cette commande doit respecter l’interface de la ligne de commande sendmail.

−−smtp−server=hôte

envoyer les courriels en utilisant le serveur SMTP sur hôte (port 25). Le serveur doit être configuré pour permettre à la machine sur laquelle fonctionne la liste de l’utiliser comme relais. Par défaut, l’interface en ligne de commande est utilisée. L’envoi par SMTP n’est utilisé qu’avec cette option.

−−qmqp−server=hôte

envoyer les courriels en utilisant le serveur QMQP sur hôte (port 628). Le serveur doit être configuré pour permettre à la machine sur laquelle fonctionne la liste de l’utiliser comme relais. Par défaut, l’interface en ligne de commande est utilisée. L’envoi par QMQP n’est utilisé qu’avec cette option.

−−moderate

forcer un message entrant à être modéré, même s’il est envoyé à une liste où l’envoi est libre. Cela peut être utilisé pour filtrer les courriers indésirables : les messages entrants peuvent être filtrés par n’importe quel système de filtrage des courriels ; dès lors qu’un message semble être indésirable, une modération par un humain peut être demandée.

−−post

forcer un message entrant à être envoyé, même s’il est envoyé à une liste où l’envoi est modéré. Cela peut être utilisé lorsqu’une vérification externe a lieu pour définir si le courriel est acceptable sur la liste, par exemple en vérifiant les signatures électroniques.

−−quiet

ne pas envoyer les messages de débogage des journaux sur la sortie d’erreur standard, contrairement au comportement par défaut.

−−sender=foo [AT] example.com
−−recipient=
foo [AT] example.com

écraser les variables d’environnement SENDER et RECIPIENT respectivement, à utiliser en combinaison avec −−incoming et −−is−list.

−−get

obtenir les valeurs d’une ou plusieurs variables de configuration. Le nom des variables est indiqué sur la ligne de commande après les options. Chaque valeur est affichée sur une ligne séparée.

−−set

configurer les valeurs d’une ou plusieurs variables de configuration. Les noms et valeurs sont donnés sur la ligne de commande après les options et séparés par un signe d’égalité (« = »). Par exemple, la commande suivante configurerait une liste en français : enemies−of−carlotta −−name=foo@bar −−set language=fr

−−version

afficher la version du programme

−−show−lists

lister les listes connues de enemies−of−carlotta

CONFIGURATION

Chaque liste est représentée par un répertoire, nommé d’après le nom de la liste, sous le répertoire ~/.enemies−of−carlotta. Ce répertoire contient plusieurs fichiers et répertoires décrits ci−dessous. En général, il n’est pas nécessaire de toucher à ces répertoires. Cependant, certaines configurations ésotériques peuvent uniquement être faites en éditant le fichier de configuration de la liste.

config

Fichier de configuration de la liste. Le contenu est décrit ci−dessous.

subscribers

Base de données des abonnés. Chaque ligne contient un groupe d’abonnés, dont les cinq premiers espaces délimitent les champs qui sont l’identifiant du groupe, l’état, la date de création du groupe, la date du message de retour qui a fait passer l’état de la liste de « ok » à « bounced », et l’identifiant du message de retour.

archive−box

Messages archivés.

bounce−box

Groupes des messages de retour qui ne sont pas dans l’état « ok ».

headers−to−add

En−têtes à ajouter aux courriels envoyés à la liste. Ceux−ci sont copiés aux débuts des en−têtes existants exactement tels qu’ils sont dans ce fichier, après que les en−têtes de la liste (comme « List−ID ») ont été ajoutés et que ceux mentionnés dans headers−to−remove ont été retirés.

headers−to−remove

En−têtes à retirer des messages envoyés à la liste.

moderation−box

Messages en attente d’approbation du modérateur.

subscription−box

Requêtes d’abonnement et de désabonnement en attente de confirmation de la part de l’utilisateur.

templates

Répertoires qui contiennent les modèles spécifiques à une liste (optionnel). Les modèles seront recherchés d’abord dans ce répertoire, s’il existe, puis dans les répertoires du système. Un fichier vide signifie que le message correspondant ne doit pas être envoyé. Cela peut être utilisé par exemple pour activer uniquement pour certaines listes les messages du type « veuillez attendre la modération de votre message ».

plugins

Répertoires contenant des grephons, à savoir des fichiers source en Python qui sont chargés automatiquement par EoC au démarrage. Ces grephons peuvent modifier le comportement d’EoC.

Le fichier config possède un format de type mot−clé=valeur :

[list]
owners = liw [AT] liw.fi
archived = no
posting = free
subscription = free
mail−on−subscription−changes = yes
mail−on−forced−unsubscribe = yes
language = fr

Les mots clés archived, posting, et subscription correspondent aux options qui portent les mêmes noms. Les autres mots−clés sont :

owners

Liste des adresses des propriétaires, définie avec l’option −−owner.

moderators

Liste des adresses des modérateurs, définie avec l’option −−moderator.

mail−on−subscription−changes

Valeur définissant si les propriétaires doivent être avertis lorsqu’un utilisateur s’abonne ou se désabonne.

mail−on−forced−unsubscribe

Valeur définissant si les propriétaires doivent être avertis si quelqu’un est retiré d’une liste suite à une adresse trop souvent invalide.

ignore_bounce

Valeur définissant si les messages de retour sont ignorés sur la liste. Utilisé par exemple lorsque la liste devrait avoir un nombre stable d’abonnés.

language

Suffixe pour les modèles, pour permettre la gestion de plusieurs langues. (Si language est défini à « fr », alors le modèle « foo » est d’abord recherché en tant que modèle « foo.fr ».)

pristine−headers

Valeur définissant si les en−têtes doivent être encodés au format MIME. Si la valeur vaut « yes », l’encodage aura lieu.

EXEMPLES

Créer une liste nommée moviefans [AT] example.com, dont le propriétaire est ding [AT] example.com (tout sur la même ligne) :

enemies−of−carlotta −−name=moviefans [AT] example.com
−−owner=ding [AT] example.com −−create

Le système de messagerie doit être configuré pour que ces messages arrivent sur la liste (et à ses adresses de commande). Pour Qmail et Postfix, voir ci−dessous.

Afficher la liste de tous les abonnés à cette liste :

enemies−of−carlotta −−name=moviefans [AT] example.com −−list

Les personnes voulant s’abonner à la liste doivent envoyer un courriel à

moviefans−subscribe [AT] example.com

QMAIL

Avec Qmail, pour faire en sorte que les courriels entrants soient traités par Enemies of Carlotta, quelques fichiers .qmail−extension sont nécessaires pour chaque liste. Par exemple, si joe est un nom d’utilisateur, pour initialiser la liste de diffusion joe−fans, deux fichiers doivent être créés : .qmail−fans et .qmail−fans−default, qui contiendront

|enemies−of−carlotta −−incoming

Si les messages à destination d’un domaine virtuel, example.com, délivrés via /var/qmail/control/virtualdomains à joe−exampledotcom, les fichiers seront nommés .qmail−exampledotcom−fans et .qmail−exampledotcom−fans−default et contiendront

|enemies−of−carlotta −−incoming −−skip−prefix=joe−exampledotcom−

(tout sur la même ligne).

POSTFIX

Avec Postfix, un fichier .forward contenant

"|procmail −p"

sera nécessaire, ainsi qu’un fichier .procmailrc contenant

:0
* ? enemies−of−carlotta −−name=$RECIPIENT −−is−list
| enemies−of−carlotta −−incoming

Pour utiliser Enemies of Carlotta avec un domaine virtuel Postfix, une carte virtuelle d’expressions rationnelles généralement appelée /etc/postfix/virtual_regexp devra être créée (pour l’activer, ajouter virtual_maps = regexp:/etc/postfix/virtual_regexp dans le fichier /etc/postfix/main.cf). Le fichier d’expressions rationnelles doit faire des choses horribles pour conserver l’adresse de destination. Il faut donc ajouter :

/^your.virtual.domain$/ dummy
/^(yourlist|yourlist−.*)@(your.virtual.domain)$/ joe+virtual−$1

Soit deux lignes. Si recipient_delimiter pour Postfix est configuré avec un moins au lieu d’un plus, utiliser joe−virtual. Ensuite dans le fichier .procmailrc, ajouter les options −−skip−prefix=joe−virtual− et −−domain=your.virtual.domain pour les deux appels à enemies−of−carlotta.

Ces manipulations restent complexes.

COMMANDES PAR MESSAGE

Les utilisateurs et propriétaires utilisent Enemies of Carlotta par courriel en utilisant des adresses de commande comme foo−subscribe [AT] example.com. Voici une liste de toutes les adresses de commande accessibles aux utilisateurs et propriétaires. Dans tous ces exemples, le nom de la liste de diffusion sera foo [AT] example.com.

Commandes par message accessibles à tout le monde
Ces commandes peuvent servir à tout le monde et ne demandent aucun privilège spécial.
foo [AT] example.com

Envoie un courriel à tous les abonnés. Le message peut avoir à être approuvé d’abord par les modérateurs de la liste, qui ont aussi le pouvoir de le rejeter.

foo−owner [AT] example.com

Envoie un courriel au(x) propriétaire(s) de la liste.

foo−help [AT] example.com

Retourne en réponse à ce courriel un message contenant l’aide de la liste.

foo−subscribe [AT] example.com

Inscrit l’auteur du courriel à la liste. Le gestionnaire de listes répondra en demandant une confirmation. L’inscription n’aura lieu qu’en cas de réponse à cette demande. De cette manière, les personnes malveillantes ne peuvent ajouter votre adresse sur une ou beaucoup de listes de diffusion.

foo−subscribe−joe=example.com [AT] example.com

Inscrit joe [AT] example.com à la liste. Pour inscrire une adresse différente de celle utilisée pour la demande d’abonnement, utiliser cette forme. La demande de confirmation sera envoyée à joe [AT] example.com puisque cette adresse seulement sera abonnée à la liste.

foo−unsubscribe [AT] example.com

Désinscrit l’auteur du courriel de la liste. Encore une fois, une demande de confirmation sera envoyée pour éviter que des personnes malveillantes désinscrivent d’autres personnes.

foo−unsubscribe−joe=example.com [AT] example.com

Désinscrit joe [AT] example.com de la liste. Encore une fois, cette dernière adresse recevra la demande de confirmation.

Commandes par message pour les propriétaires de la liste.
Les commandes suivantes peuvent être utilisées pour administrer la liste.
foo−subscribe−joe=example.com [AT] example.com

Si un propriétaire envoie un courriel de ce type, il recevra la demande de confirmation à la place de joe [AT] example.com. Il est souvent préférable de laisser les gens s’inscrire eux−mêmes, mais parfois cela peut être utile que le propriétaire s’en occupe.

foo−unsubscribe−joe=example.com [AT] example.com

Les propriétaires peuvent également désinscrire d’autres personnes.

foo−list [AT] example.com

Retourne la liste des abonnés à la liste. Cela ne marche que si l’adresse de l’expéditeur est celle de l’un des propriétaires. L’adresse de l’expéditeur est celle utilisée au niveau SMTP et non celle dans l’en−tête From:.

foo−setlist [AT] example.com

Permet à un propriétaire de configurer la liste des abonnés en un seul coup. Cela correspond à une suite de commandes −subscribe et −unsubscribe, mais en plus simple. Tous ceux qui seront ajoutés à la liste recevront un message de bienvenue, alors que ceux qui seront retirés recevront un message d’adieu.

foo−setlistsilently [AT] example.com

Commande similaire à −setlist, sans les envois des messages de bienvenue et d’adieu.

GREPHONS

Enemies of Carlotta accepte des grephons. Des connaissances en Python sont nécessaires pour comprendre cette section.

Un grephon est un module Python (un fichier avec un suffixe .py), placé dans le répertoire ~/.enemies−of−carlotta/plugins. Les grephons sont chargés automatiquement au démarrage, si la version déclarée de l’interface correspond à celle utilisée par Enemies of Carlotta. La version de l’interface est déclarée par la variable globale PLUGIN_INTERFACE_VERSION du module.

Les grephons peuvent définir des fonctions d’ancrage appelées au bon endroit dans le code d’EoC. Pour le moment, la seule fonction d’ancrage est send_mail_to_subscribers_hook, qui peut modifier un courriel avant qu’il ne soit envoyé aux abonnés. La fonction devrait ressembler à :

def send_mail_to_subscribers_hook(list, text):

L’argument list est une référence à l’objet MailingList qui correspond à la liste concernée, et text est le texte complet du courriel tel qu’il existe actuellement. La fonction devrait retourner le nouveau contenu de ce courriel.

FICHIERS

~/.enemies−of−carlotta

Ensemble des fichiers en rapport avec les listes de diffusion.

~/.enemies−of−carlotta/secret

Mots de passe secrets utilisés pour générer des adresses signées pour le contrôle des messages de retour et la validation des abonnements.

~/.enemies−of−carlotta/foo [AT] example.com

Répertoire contenant les données appartenant à la liste de diffusion foo [AT] example.com. À l’exception du fichier de config qui se trouve dans ce répertoire, rien ne devrait être à modifier.

~/.enemies−of−carlotta/foo [AT] example.com/config

Fichier de configuration pour la liste de diffusion. Ce fichier devra être édité pour modifier les options de modération ou les propriétaires de la liste.

VOIR AUSSI

Page web d’« Enemies of Carlotta » : http://www.iki.fi/liw/eoc/.

TRADUCTION

Pierre Machard <pmachard [AT] tuxfamily.org>, 2003
Thomas Huriaux <thomas.huriaux [AT] gmail.com>, 2005

COMMENTS