La gestion du courrier électronique a longtemps été un problème difficile sous les environnements de type UNIX. Ceci prinicpalement du fait de la complexité de paramétrage du logiciel Sendmail. Heureusement, des logiciels efficaces et plus simples sont apparus pour traiter la gestion du courrier électronique.
Deux protocoles sont utilisés pour le courrier électronique : SMTP (Simple Mail Transfer Protocol) pour envoyer du courrier le client de ce protocole est celui qui envoie les courriers) et POP (Post Office Protocol) pour en recevoir (le client est celui qui les reçoit). Cet aiguillage permet aux machines qui ne peuvent pas se permettre d’être des serveurs (parce qu’elles sont trop souvent éteintes) de communiquer tout de même par courrier électronique.
Sous Linux, chaque utilisateur dispose d’un fichier à son nom (user) dans le répertoire /var/spool/mail : c’est sa boîte aux lettres (mailbox). Pour lire son courrier électronique, de nombreux programmes sont disponibles ; tous lisent ce fichier. Le démon de courrier électronique, quant à lui, y ajoute les courriers reçus.
Postfix
Ce démon gère une file d’attente de courrier électronique. Il permet de recevoir le courrier à destination de la machine locale. Le transfert de courrier de poste à poste peut poser beaucoup plus de problèmes, et nécessite l’emploi d’un service DNS. Cependant, l’installation par défaut permet de gérer le courrier électronique en Intranet : éditer et modifier le fichier /etc/postfix/main.cf, démarrer le démon postfix et le tour est joué !
Avec Postfix, finie la syntaxe complexe et difficilement compréhensible du sendmail.cf de SendMail. Il n’est plus nécessaire d’utiliser un ensemble de macros pour configurer le serveur de courrier. Le paramétrage de postfix consiste à adapter un seul fichier nommé main.cf
Si vous ne voulez pas vous retrouvez dans des situations complexes de configuration, la solution consiste à oublier sendmail. Pour que postfix devienne votre agent de transport de courrier, vous devrez tout d’abord désactiver sendmail. Même si vous ne l’avez jamais activé ou configuré, si vous utilisez une distribution autre que la Mandrake, il y a beaucoup de chance pour que sendmail ait été installé par défaut lors de l’installation de votre distribution Linux.
Pour désactiver sendmail, il faut suivre les commandes suivantes :
# cd /usr/sbin
# mv sendmail sendmail.OFF
# ./sendmail.OFF -q
# mv /usr/bin/newaliases /usr/bin/newaliases.OFF
# mv /usr/bin/mailq /usr/bin/mailq.OFF
# chmod 0 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF \
/usr/bin/mailq.OFF
# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail
# ln -s /usr/local/sbin/sendmail /usr/bin/mailq
# ln -s /usr/local/sbin/sendmail /usr/bin/newaliases
Nous supposerons que votre machine s’appelle nasso et que votre domaine s’appelle ouaga.bf.
La majeure partie du travail de configuration consiste à adapter le fichier /etc/postfix/main.cf (ou /usr/local/etc/postfix/main.cf) à nos besoins. Les modifications doivent être effectuée à partir de l’utilisateur root.
Avant toute modification, il est prudent de sauvegarder le fichier original :
# cp /etc/postfix/main.cf /etc/postfix/main.cf.reference
Puis, éditer main.cf :
Les options par défaut sont déjà configurés et vous n’avez à modifier que les paramètres suivants :
# INFORMATIONS SUR LES REPERTOIRES LOCAUX
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
# POSSESSION DES FILES D'ATTENTE ET DES PROCESSUS
mail_owner = postfix
# NOMS DE LA MACHINE ET DU DOMAINE
myhostname = nasso.ouaga.bf
# POUR L'ENVOI DU COURRIER
myorigin = $myhostname
# MODE DE TRANSPORT
default_transport = smtp
# GESTION DES ALIAS
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
# DELIVRANCE DU COURRIER
mailbox_command = /usr/local/bin/procmail
La première section sert à spécifier les emplacements :
La deuxième section précise qui est le propriétaire de la file d’attente et de la plupart des processus serveurs de postfix. Ici, nous avons conservé la proposition, après avoir créé l’utilisateur postfix. Voici son entrée dans notre fichier /etc/passwd :
postfix:x:101:101::/var/spool/postfix:/bin/false
Le ’x’ dans la partie mot de passe vient du fait que nous utilisons des mots de passe cachés. Le groupe 101 correspond au groupe postfix, lui aussi créé pour l’occasion :
# grep 101 /etc/group
postfix:x:101:
La troisième section sert à indiquer le nom complet de notre machine.
La section suivante concerne l’envoi du courrier : elle permet de renseigner postfix sur la machine qui a posté.
Il faut ensuite préciser le protocole utilisé pour l’acheminement du courrier. Par défaut, postfix ne reconnaît que smtp et uucp. Mais il est possible de créer des transports dans /etc/postfix/master.cf, ce qui permet de changer des paramètres en fonction de multiples critères. Il est ainsi possible dupliquer le transport smtp et en changer les caractéristiques en fonction des courriers entrants ou sortants ce qui est très souple.
La gestion des alias peut s’effectuer par le fichier /etc/aliases tout comme pour sendmail. Mais il est préférable d’utiliser le fichier de configuration spécifique à Postfix /etc/postfix/aliases (ou /usr/local/etc/postfix/aliases (utiliser la commande man aliases pour obtenir des détails sur le format de ce fichier). Ce fichier permet de définir des alias entre des noms de destinataires. Le paramétrage des alias tout comme la plupart des paramètres de Postfix peut être effectué à partir de l’interfae Webmin, ce qui évite de connaitre la syntaxe.
Pour des raisons d’optimisation, postfix, tout comme sendmail, exige que les fichiers tels que le fichier d’alias soit traité comme une base de données au format DBM ou DB. Pour générer ces formats, on utilise l’utilitaire /usr/sbin/postalias. A noter qu’en utilisant Webmin, cette opération est effectuée automatiquement.
En adoptant le format DB la commande pour générer le fichier /etc/postfix/aliases.db à partir du fichier /etc/postfix/aliases est :
# postalias hash:/etc/postfix/aliases
La consultation du courrier électronique depuis une machine distante s’effectue en utilisant soit le protocole imap soit le protocole pop3.
Le protocole imap présente de nombreux avantages mais étant donné que de nombreux clients ne le supportent pas, nous sommes obligés d’utiliser au moins pop3.
Pour activer les services pop3 et/ou imap, il suffit d’enlever les commentaires devant ces services dans le fichier /etc/services et /etc/inetd.conf puis de relancer le démon inetd.
Il existe de nombreuses interfaces WebMail en PHP très professionnels. L’application IMP disponible sur phpinfo.net est la plus utilisée actuellement chez les providers professionnels. IMP étant assez diffcile à configure, on peut trés bien lui préférer une interface WebMail telle que SquirrelMail également téléchargable à partir du site phinfo.net : il s’agit application PHP très simple à installer et sufisamment complète pour couvrir les besoins des utilisateurs.