Postfix
Postfix est un serveur de messagerie, un Mail Transport Agent (MTA).
Déroulement de la réception d'un couriel
La documentation est difficile à suivre pour comprendre ce qui se passe quand un courrier est reçu, et surtout dans quel ordre.
Apparemment:
Déterminer le type de traitement
- $virtual_alias_maps réécrit des adresses avant toute chose
- La table 'transport' est ensuite utilisée pour déterminer qui va traiter le mail
- La comparaison se fait par adresse complète, puis par domaine
- S'il n'y a pas de correspondance, on passe aux règles par défaut, en cherchant le domaine notamment dans $mydestination (local), $virtual_mailbox_domains (virtual), $relay_domains (relay), etc. (trivial-rewrite(8)).
- Sinon $default_transport (smtp)
Les types de traitement
La destination est une entrée de master.cf + un nom d'hôte (par défaut la machine locale). Les entrées par défaut incluent principalement local, virtual, relay, smtp. (transport(5))
- local: possède tout un artirail d'actions pour savoir où ranger le mail. D'après postconf(5): The precedence of local(8) delivery features from high to low is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, fallback_transport_maps, fallback_transport and luser_relay.
- virtual: moins complet que local, il range l'e-mail dans $virtual_mailbox_maps mais de manière dissociée des utilisateurs locaux (/etc/password). Cela permet de gérer plusieurs domaines courriel complètement indépendants.
- smtp: pour relayer vers une machine tierce (par exemple au sein d'un réseau privé avec une seule IP publique)
Alias
(Note: ceci est à vérifier, peut-être dû à un problème de configuration plutôt qu'à une règle générale)
Noter que quand un e-mail est réécrit suite à un alias, le traitement de l'e-mail en recommence pas depuis le début. Autrement dit, il n'est plus possible d'appliquer les règles en amont sur l'e-mail réécrit. En particulier, les e-mails en partie droite de /etc/aliases ne seront pas soumis aux règles de $virtual_alias_maps. Apparemment cela permettrait d'éviter des boucles.
Documentation
- Postfix Configuration Parameters
- Postfix Architecture Overview: trop accès sur l'architecture interne de Postfix, mais une bonne lecture après avoir compris cette page wiki