Rédiger une documentation est toujours un travail long et difficile. Vous trouverez sans aucun doute des fautes d'orthographes et peut être même techniques, n'hésitez surtout pas à me les signaler.
Les critiques, suggestions et remerciements sont les bienvenues.
Cette documentation peut être reproduite entièrement ou partiellement mais je vous demanderais juste de me le signaler en m'envoyant un message.
Postfix est construit autour de plusieurs programmes indépendants qui remplissent chacun un rôle dans le traitement des messages.
Tous ces programmes sont sous le contrôle du daemon MASTER.
Dans cette documentation, j'essai d'ammener le lecteur à comprendre le fonctionnement et le rôle de chacun de ces programmes puis son intégration dans la chaîne de traitement des messages.
Le serveur Postfix peut être utilisé pour les rôles suivants :
Les files d'attentes de Postfix :
Provenance du message :
Traitement d'un message en arrivé :
Destination du message (livraison) :
Ce processus est chargé de gérer (lancer, arrêter) tous les autres processus comme le ferait un inetd.
Options d'exécution du daemon :
-c config_dir : Chemin et nom du répertoire contenant les fichiers main.cf et master.cf -e exit_time : Ferme le processus master après le nombre de secondes spécifiés. -D : Lance le mode debugage et utilise le paramètre debugger_command de main.cf -t : Mode test. -v : Active le mode 'verbose' pour le debugage (plusieurs -v ajoute des éléments)
Paramètres utilisés :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus QMGR :
qmgr fifo n - n 300 1 qmgr
Emplacement du binaire correspondant :
/usr/libexec/postfix/qmgr
Paramètres utilisés :
Relation avec des fichiers externes :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus CLEANUP :
cleanup unix n - n - 0 cleanup
Emplacement du binaire correspondant :
/usr/libexec/postfix/cleanup
Paramètres utilisés :
Relation avec des fichiers externes :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus TRIVIAL-REWRITE :
rewrite unix - - n - - trivial-rewrite
Emplacement du binaire correspondant :
/usr/libexec/postfix/trivial-rewrite
Paramètres utilisés :
Relation avec des fichiers externes :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus BOUNCE :
bounce unix - - n - 0 bounce defer unix - - n - 0 bounce
Emplacement du binaire correspondant :
/usr/libexec/postfix/bounce
Paramètres utilisés :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus LOCAL :
local unix - n n - - local
Emplacement du binaire correspondant :
/usr/libexec/postfix/local
Paramètres utilisés :
Relation avec des fichiers externes :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus PICKUP :
pickup fifo n - n 60 1 pickup
Emplacement du binaire correspondant :
/usr/libexec/postfix/pickup
Paramètres utilisés :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus SMTP :
smtp unix - - n - - smtp
Emplacement du binaire correspondant :
/usr/libexec/postfix/smtp
Paramètres utilisés :
Ce processus ...
Exemple de l'entrée dans le fichier master.cf pour le processus SMTPD :
smtp inet n - n - - smtpd
Emplacement du binaire correspondant :
/usr/libexec/postfix/smtpd
Paramètres utilisés :
Les principaux répertoires et fichiers de Postfix en version RPM :
/etc/postfix/main.cf ...... : Fichier de configuration principal. Contient tous les paramètres de postfix /etc/postfix/master.cf .... : Fichier de configuration des tâches serveurs (daemons) /etc/postfix .............. : Répertoire de base pour les fichiers de configuration /etc/postfix/access ....... : Fichier pour filtrer les accès aux services SMTP /etc/postfix/aliases ...... : Fichier pour gérer des aliases sur les comptes email locaux /etc/postfix/canonical .... : Fichier pour effectuer réécrire des adresses email /etc/postfix/relocated .... : Fichier pour gérer des comptes supprimés ou déplacés /etc/postfix/transport .... : Fichier pour définir les serveurs SMTP pour les destinations internes /etc/init.d/postfix ....... : Script de lancement du serveur Postfix /usr/bin/mailq.postfix .... : Utilitaire de visualisation des messages en attentes dans les queues /usr/bin/newaliases.postfix : Utilitaire pour mettre à jour le fichier des aliases /usr/sbin/postmap ......... : Utilitaire pour mettre à jour les autres fichiers de données comme access, transport, etc... /usr/sbin/postcat ......... : Utilitaire pour visualiser un message en attente ou bloquer dans une queue /usr/sbin/postconf ........ : Utilitaire de configuration en ligne de commande /usr/sbin/postfix ......... : Centre de commande postfix. Plusieurs options comme reload, flush, etc... /usr/sbin/postsuper ....... : Utilitaire de gestion des queues (déblocage, suppression, etc...) /usr/sbin/sendmail.postfix : Utilitaire client pour l'envoi d'un message /var/spool/postfix ........ : Répertoire de base pour les queues. /usr/share/doc/postfix-2xx : Ce répertoire contient des très bon exemples et documentations Remarque : Pour les fichiers access, aliases, canonical, relocated, virtual et transport, vous trouverez quelque fois un fichier du même nom mais avec l'extension ".db" n'editez jamais ce dernier car il s'agit du fichier original converti en base de données au format Berkeley DB.
Quelques notions sur le fonctionnement de postfix :
http://abcdrfc.free.fr/ http://www.rfc-editor.org/ -------------------------------------------------------------------------------------------------- RFC 821 : STD 10 SMTP - Simple Mail Transfer Protocol http://abcdrfc.free.fr/rfc-vo/rfc0821.txt -------------------------------------------------------------------------------------------------- RFC 822 : STD 11 MSG - Le Format des Messages de l'Internet. Cette RFC est obsolète, remplacée par la RFC 2822 http://abcdrfc.free.fr/rfc-vo/rfc0822.txt RFC 2822 : Le Format des Messages de l'Internet http://www.abcdrfc.free.fr/rfc-vo/rfc2822.txt -------------------------------------------------------------------------------------------------- RFC 2046 : 2ème partie de la spécification MIME : Types de Média. http://www.abcdrfc.free.fr/rfc-vo/rfc2046.txt -------------------------------------------------------------------------------------------------- RFC 2047 : 3ère partie de la spécification MIME : Texte Non-ASCII. http://www.abcdrfc.free.fr/rfc-vo/rfc2047.txt Dans le RFC 2047, norme relative à MIME, il est défini que le texte internationalisé peut être supporté dans les en-têtes de courrier électronique. Ceux-ci étant nécessaires pour l'envoi des messages, c'est dans l'en-tête que l'on trouve l'adresse Internet du destinataire ainsi qu'un champ pour décrire l'objet du message -------------------------------------------------------------------------------------------------- RFC 2045 : 1ère partie de la spécification MIME : Format du Corps de Message. http://www.abcdrfc.free.fr/rfc-vo/rfc2045.txt Corps des messages : Le RFC 2045, qui décrit la norme MIME, définit les spécifications du charset en usage pour le texte dans le corps du message. Ainsi, pour les francophones, le charset ISO-8859 ou ISO 10646 avec encodage UTF-8 est nécessaire afin que le logiciel de courrier électronique puisse accepter et afficher tous les caractères accentués présents dans le corps du message. Le RFC 2046, autre document relatif à MIME, décrète que le charset par défaut est l'ASCII lorsque aucun autre n'est spécifié. Affichage de l'en-tête et du corps de messages : L'affichage d'un courrier électronique avec du texte internationalisé implique que le logiciel de courrier électronique client puisse comprendre le charset et qu'il soit en mesure de l'afficher. L'affichage a une relation directe avec la capacité qu'a le système d'exploitation d'afficher les caractères internationalisés tels que définis dans les charsets. Un logiciel de courrier électronique donné pourrait supporter seulement la compréhension du charset dans le message sans être en mesure d'afficher les caractères internationalisés. Ainsi, un message de courrier électronique échangé entre deux internautes francophones pourrait être rédigé par le premier sous l'environnement Windows 2000 avec spécification du charset UTF-8 et de l'étiquette de langue FR, et serait bien reçu par le destinataire avec le même logiciel de courrier fonctionnant sous un système d'exploitation ne supportant pas UTF-8. Par conséquent, le logiciel de courrier reconnaîtrait le charset en usage, mais il ne serait pas en mesure d'afficher tous les caractères internationalisés. -------------------------------------------------------------------------------------------------- RFC 1034 : STD 13 DNS - Domain Name Server http://abcdrfc.free.fr/rfc-vo/rfc1034.txt RFC 1035 : les specs et l'implémentation des Noms de Domaines http://abcdrfc.free.fr/rfc-vo/rfc1035.txt RFC 2505 : Recommandations pour lutter contre le "spam" http://www.abcdrfc.free.fr/rfc-vo/rfc2505.txt -------------------------------------------------------------------------------------------------- RFC 2231 : MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations - Obsoletes RFC2184, Updates RFC2045, RFC2047, RFC2183 Le RFC 2231 normalise des paramètres et des spécifications pour MIME afin de supporter le charset et les étiquettes de langue pour l'utilisation de caractères internationalisés dans les en-têtes de courrier électronique. Ainsi, par exemple, l'en-tête pourrait contenir la spécification du charset UTF-8 et l'étiquette de langue FR afin que les logiciels de courrier électronique puissent comprendre et afficher des caractères internationalisés dans l'en-tête du message reçu. -------------------------------------------------------------------------------------------------- Le RFC 1652 définit une extension au protocole SMTP afin qu'il puisse supporter nativement des messages 8 bits-MIME par rapport à un usage conventionnel sur 7-bits. Le protocole SMTP, tel que présenté dans le document Problèmes reliés à l'internationalisation d'Internet, dispose maintenant de cette propriété qui rend ses échanges plus souples (support 8-bits et support 7-bits) avec les autres serveurs de courrier électronique dans Internet. Ainsi, tel que mentionné par l'Internet Mail Consortium, il est recommandé que tout nouveau serveur de courrier électronique déployé dans Internet soit conforme au RFC 1652, c'est-à-dire qu'il supporte les échanges 8 bits-MIME sous SMTP. --------------------------------------------------------------------------------------------------
211 .... : Etat système, ou réponse d'aide système 214 .... : Message d'aide 220 .... : Service disponible 221 .... : Canal de transmission en cours de fermeture 250 .... : Succès - Action de messagerie effectuée. 251 .... : Utilisateur non local - Redirige le message et averti le client SMTP du changement d'adresse 354 .... : Début de message ; arrêt par <CRLF>.<CRLF> 421 .... : Service non disponible 450 .... : Action non effectuée - boîte-aux-lettres non disponible 451 .... : Action arrêtée : erreur de traitement 452 .... : Action non effectuée : manque de ressources système. 500 .... : Erreur de syntaxe, commande non reconnue 501 .... : Erreur de syntaxe dans des paramètres ou arguments 502 .... : Commande non implémentée 503 .... : Mauvaise séquence de commandes 504 .... : Paramètre de commande non implémenté 550 .... : Action non effectuée : boîte-aux-lettres non disponible 551 .... : Utilisateur non local - Refuse le message et averti le client SMTP de la nouvelle adresse 552 .... : Action arrêtée : manque de ressources de stockage 553 .... : Action non effectuée : nom de boîte-aux-lettres non autorisé 554 .... : Transaction échouée.