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=[email protected]
- 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=[email protected]
- --recipient=[email protected]
- é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 = [email protected] 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 [email protected], dont le propriétaire est [email protected] (tout sur la même ligne) :
- enemies-of-carlotta [email protected] [email protected] --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 [email protected] --list
Les personnes voulant s'abonner à la liste doivent envoyer un courriel à
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 [email protected]. 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 [email protected].Commandes par message accessibles à tout le monde
Ces commandes peuvent servir à tout le monde et ne demandent aucun privilège spécial.- [email protected]
- 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.
- [email protected]
- Envoie un courriel au(x) propriétaire(s) de la liste.
- [email protected]
- Retourne en réponse à ce courriel un message contenant l'aide de la liste.
- [email protected]
- 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.
- [email protected]
- Inscrit [email protected] à 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 à [email protected] puisque cette adresse seulement sera abonnée à la liste.
- [email protected]
- 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.
- [email protected]
- Désinscrit [email protected] 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.- [email protected]
- Si un propriétaire envoie un courriel de ce type, il recevra la demande de confirmation à la place de [email protected]. 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.
- [email protected]
- Les propriétaires peuvent également désinscrire d'autres personnes.
- [email protected]
- 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:.
- [email protected]
- 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.
- [email protected]
- 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/[email protected]
- Répertoire contenant les données appartenant à la liste de diffusion [email protected]. À l'exception du fichier de config qui se trouve dans ce répertoire, rien ne devrait être à modifier.
- ~/.enemies-of-carlotta/[email protected]/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.