NOM
enemies-of-carlotta - Gestionnaire simple de listes de diffusion
SYNOPSIS
enemies-of-carlotta [options] [adresses]
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@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@example.com
--recipient=foo@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@liw.iki.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@example.com, dont le propriétaire est
ding@example.com (tout sur la même ligne) :
enemies-of-carlotta --name=moviefans@example.com
--owner=ding@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@example.com --list
Les personnes voulant s’abonner à la liste doivent envoyer un courriel
à
moviefans-subscribe@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@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@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@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@example.com
Envoie un courriel au(x) propriétaire(s) de la liste.
foo-help@example.com
Retourne en réponse à ce courriel un message contenant l’aide de
la liste.
foo-subscribe@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@example.com
Inscrit joe@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@example.com puisque cette adresse seulement sera abonnée à
la liste.
foo-unsubscribe@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@example.com
Désinscrit joe@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@example.com
Si un propriétaire envoie un courriel de ce type, il recevra la
demande de confirmation à la place de joe@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@example.com
Les propriétaires peuvent également désinscrire d’autres
personnes.
foo-list@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@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@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@example.com
Répertoire contenant les données appartenant à la liste de
diffusion foo@example.com. À l’exception du fichier de config
qui se trouve dans ce répertoire, rien ne devrait être à
modifier.
~/.enemies-of-carlotta/foo@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@tuxfamily.org>, 2003
Thomas Huriaux <thomas.huriaux@gmail.com>, 2005