37. pepsi-stage-aliases¶
Développer les destinataires d’enveloppe via une table d’alias / de liste de diffusion.
37.1. Rôle¶
pepsi-stage-aliases réécrit les destinataires d’enveloppe d’un message à travers un fichier de correspondance avant la remise : chaque destinataire qui correspond à une entrée de la table est remplacé par les adresses cibles de cette entrée, les destinataires qui ne correspondent à rien sont laissés inchangés, la liste résultante est dédupliquée de sorte que chaque adresse ne soit remise qu’au plus une fois, et le message avance vers NEXT_STAGE. C’est l’étape classique d’expansion /etc/aliases / de domaine virtuel, et elle est normalement placée juste avant la remise locale. Elle ne charge que l’enveloppe et state — jamais les en-têtes ni le corps — et ne met jamais un message en pause, ne le fait jamais échouer et ne le termine jamais. Référence : pepsi-stage-aliases(1).
37.2. Fonctionnalités¶
Fichier de table à la Postfix.
ALIASESnomme un fichier lisible par un humain, analysé comme une table Postfix virtual(5) : chaque ligne non vide associe une clé — une adresse complète, un attrape-tout@domain, ou un glob*tel quesales-*@example.org— à une ou plusieurs adresses cibles séparées par des virgules ou des espaces (conservées verbatim ; les cibles ne peuvent pas elles-mêmes contenir un joker). Une clé sans cible est ignorée, de sorte qu’un destinataire n’est jamais silencieusement supprimé.La correspondance la plus spécifique l’emporte. Un destinataire est mis en minuscules et consulté tel quel ; en cas d’absence, l’attrape-tout
@domainest essayé, puis le joker*correspondant le plus spécifique (unsales-*@example.orgétroit bat un*@example.orglarge, qui bat un*nu). Le détail de sous-adresse (+tag) n’est pas retiré, de sorte qu’une adresse de liste précise peut recevoir son propre alias.Expansion transitive avec rupture des boucles. Lorsqu’une cible est elle-même une clé, elle est développée à son tour, de sorte que les listes de distribution imbriquées se résolvent en leurs adresses feuilles ; un cycle est rompu en résolvant la clé répétée en son adresse littérale plutôt qu’en récursant à l’infini.
Mise en cache, échec en douceur. La table est lue dans un cache global au processus et ré-analysée seulement lorsque l’identité du fichier (heure de modification, taille ou inode) change, de sorte qu’un worker occupé ne la relit pas à chaque message. Un fichier manquant ou illisible est traité comme une table vide (et journalisé), de sorte qu’une mauvaise configuration momentanée ne fait pas échouer le courrier.
pepsi-setupvérifie la syntaxe du fichier au moment de l’installation lorsqu’il existe.
37.3. Notifications d’état de remise¶
state.dsn.rcpt est parallèle à la liste des destinataires ; il est donc reconstruit de concert avec les destinataires réécrits. Une cible développée hérite du NOTIFY du destinataire d’origine, privé de tout SUCCESS (un NOTIFY qui n’était que SUCCESS devient NEVER), de sorte qu’une seule soumission à un alias n’attire pas un DSN positif par membre ; conformément à la RFC 3461 §5.2.7, elle porte aussi un ORCPT pointant vers ce destinataire d’origine (son ORCPT existant le cas échéant, sinon rfc822;<original-recipient>). Un destinataire non développé conserve son entrée DSN, et les RET/ENVID au niveau du message ainsi que toute autre clé de state sont préservés.
37.4. Configuration¶
[stage-<name>] : PROGRAM = pepsi-stage-aliases, le chemin du fichier de table ALIASES, et le NEXT_STAGE vers lequel le message développé avance. pepsi-setup crée un modèle ALIASES de démarrage lorsque le fichier manque et en vérifie la syntaxe lorsqu’il est présent. Voir pepsi-stage-aliases(1) et Configuration.
37.5. État¶
Entrées : le
rcpt_tod’enveloppe et lestate.dsn.rcptparallèle.Sorties : un
rcpt_toréécrit et unstate.dsn.rcptcorrespondant (seulement lorsqu’un alias s’est appliqué ou qu’un doublon a été retiré) ; aucun autrestaten’est touché.Transitions : avancer vers
NEXT_STAGE(la seule transition).
37.6. Voir aussi¶
pepsi-stage-relay-to-maildir, pepsi-stage-relay-to-lmtp, pepsi-stage-if, Fonctionnalités prises en charge, pepsi-stage-aliases(1).