Alias et utilisateurs virtuels
De FphAdmin.
Sympa se base sur SendMail pour l'envoi des messages et ce sont les principes de configuration de SendMail qui établissent la correspondance entre l'adresse électronique et l'action effectuée par Sympa.
Par exemple, le fait qu'un abonné écrivant à discussion@forums.basedefiches.net déclenche un envoi de son message à tous les abonnés de la liste est une conséquence de la configuration suivante :
1) Le fichier /etc/mail/sympa/virtusertable comprend la ligne suivante :
discussion@forums.basedefiches.net sympa-discussion--forums.basedefiches.net
Cette ligne fait correspondre l'adresse discussion@forums.basedefiches.net à l'alias sympa-discussion--forums.basedefiches.net
2) le fichier /etc/mail/sympa/aliases comprend la ligne suivante :
sympa-discussion--forums.basedefiches.net: "|/usr/lib/sympa/bin/queue discussion@forums.basedefiches.net"
Cette ligne fait correspondre l'alias défini plus haut à la commande de Sympa.
Deux fichiers interviennent donc : virtusertable et aliases. virtusertable fait le lien entre une adresse et, soit une autre adresse (et une seule), soit un alias. aliases fait le lien entre un alias et soit une ou plusieurs adresse, un autre alias, une commande comme la ligne ci-dessus.
Les fichiers /etc/mail/sympa/virtusertable et /etc/mail/sympa/aliases ne doivent pas être modifiés directement. Ils sont obtenus de manière automatique par concaténation des fichiers présents dans les répertoires /etc/mail/sympa/virtusertable.d et /etc/mail/sympa/aliases.d.
Autrement dit, les manipulations ne doivent porter que sur les fichiers présents dans les répertoires /etc/mail/sympa/virtusertable.d et /etc/mail/sympa/aliases.d
Sommaire |
[modifier] le répertoire /etc/mail/sympa/virtusertable.d
Ce répertoire comprend un fichier par liste de diffusion portant le nom de la liste (exemple : discussion@forums.basedefiches.net). Ce fichier est créé automatiquement par le script /etc/mail/sympa/create_sympa_aliases. Voici un exemple :
discussion@forums.basedefiches.net sympa-discussion--forums.basedefiches.net discussion-request@forums.basedefiches.net sympa-discussion--forums.basedefiches.net-request discussion-editor@forums.basedefiches.net sympa-discussion--forums.basedefiches.net-editor discussion-owner@forums.basedefiches.net sympa-discussion--forums.basedefiches.net-owner discussion-subscribe@forums.basedefiches.net sympa-discussion--forums.basedefiches.net-subscribe discussion-unsubscribe@forums.basedefiches.net sympa-discussion--forums.basedefiches.net-unsubscribe
Ce fichier crée un alias pour les différentes commandes d'une liste de diffusion. La convention de nommage est la suivante : sympa- suivi du nom de la liste où l'arobase est remplacé par deux tirets.
Il n'y a pas de raison 'a priori' de modifier ce fichier : les commandes sont celles définies par Sympa et nommer autrement les alias ne présente pas d'intérêt.
Lorsqu'une liste est supprimée, on place le fichier correspondant dans le répertoire /etc/mail/sympa/virtusertable.d.exclude, cela permet de conserver une trace de la liste.
Le répertoire comprend également des fichiers commençant par « _head », la presque totalité date de l'époque où le serveur servait à la fois pour Sympa et du courrier électronique classique. Ces fichiers pourront être supprimés à terme. Un fichier est très important, il s'agit de _head_forums : il comprend toutes les adresses correspondant non à une liste particulière mais à un hôte virtuel de Sympa (autrement dit, un nom de domaine, par exemple : sympa@forums.basedefiches.net).
Les conditions de modification de ce fichier sont liées à la procédure de création d'un nouvel hôte virtuel Sympa (à documenter).
[modifier] le répertoire /etc/mail/sympa/aliases.d
Ce répertoire comprend également un fichier par liste de diffusion portant le nom de la liste. Il est également créé par le script /etc/mail/sympa/create_sympa_aliases.
sympa-discussion--forums.basedefiches.net: "|/usr/lib/sympa/bin/queue discussion@forums.basedefiches.net" sympa-discussion--forums.basedefiches.net-request: "|/usr/lib/sympa/bin/queue discussion-request@forums.basedefiches.net" sympa-discussion--forums.basedefiches.net-editor: "|/usr/lib/sympa/bin/queue discussion-editor@forums.basedefiches.net" sympa-discussion--forums.basedefiches.net-owner: "|/usr/lib/sympa/bin/bouncequeue discussion@forums.basedefiches.net" sympa-discussion--forums.basedefiches.net-subscribe: "|/usr/lib/sympa/bin/queue discussion-subscribe@forums.basedefiches.net" sympa-discussion--forums.basedefiches.net-unsubscribe: "|/usr/lib/sympa/bin/queue discussion-unsubscribe@forums.basedefiches.net"
On retrouve dans ce fichier les alias définis par le fichier correspondant dans /etc/mail/sympa/virtusertable.d et on voit que ces alias sont associés à des commandes de Sympa. Là également, il n'y a priori pas de raison de modifier ce fichier.
Dans le cas de suppression de la liste, ce fichier doit être placé dans /etc/mail/sympa/aliases.d.exclude.
Le répertoire comprend également le lien _head_0 qui pointe vers /etc/aliases le fichier d'alias du système et _head_2 qui définit les alias créés dans le fichier /etc/mail/sympa/virtusertable.d/_head_forum.
[modifier] Procédure de mise à jour
En cas de mise à jour d'un fichier de /etc/mail/sympa/virtusertable.d, /etc/mail/sympa/aliases.d (ou exceptionnellement de /etc/aliases), il faut d'abord reconcaténer les différents fichiers puis relancer Sendmail. ce qui donne la suite de commande suivante
cd /etc/mail/sympa ./collate cd /etc/mail make /etc/init.d/sendmail reload
collate est le script qui concatène tous les fichiers. Le lancement de make est la procédure standard de mise à jour de Sendmail. La dernière ligne relance Sendmail.
[modifier] Procédure de création des alias d'une liste
Lorsqu'une liste est créée via l'interface Sympa, il faut ensuite créer les fichiers correspondant dans /etc/mail/sympa/virtusertable.d et /etc/mail/sympa/aliases.d. Le script create_sympa_aliases se charge de le faire.
cd /etc/mail/sympa ./create_sympa_aliases lenomdelaliste@ledomainecorrespondant
Il faut ensuite lancer la procédure de mise à jour comme décrit au paragraphe précédent.
[modifier] Un mot sur genericstable
genericstable n'est plus utilisé. Il peut être ignoré.

