Introduction à qmail
PrécédentChapitre 4. Configuration : la baseSuivant

Syntaxe des .qmail*

Plongeons-nous à présent dans le contenu de ces fameux fichiers .qmail*. Ces fichiers contiennent les instructions que doit suivre le MDA qmail-local pour livrer le courriel. Çelà peut rappeler vaguement le mécanisme des fichiers .forward du monde de sendmail. Voici un exemple :
# mon .qmail à moi
# Un pipe 
|qbiff
# Un forward
&moi@ailleurs.laba
# Livraison dans une BAL maildir
./maildir/
# Livraison dans une BAL mbox
./mbox
On le voit, chaque ligne contient une et une seule instruction de livraison. Les lignes sont toutes analysées à chaque courriel livré par qmail-local. Elles peuvent contenir des commentaires préfixés par une dièse. Dans cet exemple, chaque courriel sera tubé dans qbiff, redirigé (forwarded) vers moi@ailleurs.laba et livré dans les boites aux lettres ~/maildir/ et ~/mailbox.

qmail-local exécute les livraisons vers tubes de la forme
|commande
en écrivant le courriel dans l'entrée standard d'un
sh -c commande
exécuté dans le répertoire personnel du destinataire. L'entête du courriel ne contient alors pas les champs Return-Path et Delivered-To mais qmail-local passe beaucoup d'informations par variables d'environnement, par exemple SENDER et RECIPIENT (voir la page de manuel qmail-command). Pour les commandes qui ne ne prennent pas en compte ces variables, comme procmail ou formail par exemple, il suffit d'utiliser le binaire preline livré avec qmail qui insère les champs Return-Path et Delivered-To dans le message avant de l'écrire dans l'entrée standard de la commande. Par exemple :
|preline formail -A "Status: RO" | procmail

Je vous conseille fortement de faire un «man dot-qmail» pour en savoir plus sur la syntaxe et les subtilités du format des fichiers .qmail.

D'autres binaires peuvent vous être très utiles dans vos .qmail*. Jetez un coup d'oeil par exemple à la page de manuel de condredirect et à celle de forward.

Pour effectuer une modification sûre de vos fichiers .qmail*, Dan Bernstein recommande de positionner le bit «sticky» sur son répertoire personnel par un
chmod +t $HOME
pendant la durée de la modification. En effet, qmail-local refusera de livrer dans un répertoire dont le bit sticky est positionné. Une fois la modification effectuée, il vous suffit de désactiver le bit sticky de votre répertoire par un
chmod -t $HOME
Le plus simple est de se faire un alias pour son shell favori. Par exemple, pour bash, je rajoute la ligne :
alias edqm='chmod +t ~; && vi $1 && chmod -t ~;'
à mon ~/.bash_profile.


PrécédentPage principaleSuivant
Livraison par qmail-local et utilisateur aliasNiveau précédentGestion de la file d'attente (à compléter)