Qmail n'est pas disponible en version binaire compilée pour des raisons de copyright semble-t-il, mais les fichiers sources ainsi que la documentation sont disponibles dans toutes les bonnes crèmeries FTP de la planète. Rien ne vous empèche non plus de récupérer l'archive sur le site même de Qmail http://www.qmail.org ou l'un de ses nombreux miroirs. Les sources sont également disponibles sous forme de paquetages source pour les distributions Linux Debian et RedHat pour ne citer qu'elles. En fait, Qmail tourne sous quasiment tous les Unix. Je présente ici l'installation de Qmail sur un système RedHat 4.2 muni de Sendmail. Il est cependant très simple d'adapter les choses aux autres configurations.
Récupérer et décompresser l'archive est un jeu d'enfant.
Il convient ensuite de lire le fichier INSTALL.
Je ne fais ici que reprendre son contenu presque mot pour mot.
Il y est dit tout d'abord que l'on peut éditer le fichier
conf-qmail pour modifier par exemple
le répertoire Qmail (qui est par défaut /var/qmail/).
Je suppose dans toute la suite que le répertoire Qmail est bien
/var/qmail/.
De même, pour modifier les UID/GID associés à Qmail, il faut éditer
les fichiers conf-users et conf-groups.
La distribution Linux Debian intègre déjà les utilisateurs/groupes Qmail, l'installation n'en est que facilitée.
Il faut à présent créer le répertoire /var/qmail/ ou son
équivalent le cas échéant. On peut maintenant lancer la compilation
des binaires puis celle des pages de manuel par
root$ make root$ make man
Il faut à présent créer l'arborescence Qmail puis vérifier que tout s'est bien passé
root$ make setup root$ make check
À ce stade, on peut faire la configuration minimale du MTA par un
root$ ./config-fast votre.host.name
/var/qmail/control (me surtout).
Si vous êtes prudent, vous préfèrerez sans doute ./config à
./config-fast votre.host.name.
Vous pouvez lire le fichier INSTALL.ctl pour plus de détails.
La lecture du fichier INSTALL.alias apprend comment
remplacer son vieil /etc/aliases par un
/var/qmail/alias.
Le minimum est de faire
root$ cd ~alias root$ touch .qmail-postmaster .qmail-mailer-daemon .qmail-root root$ chmod 644 ~alias/.qmail*
.qmail, ici pour root,
postmaster et mailer-daemon. L'utilisateur alias recevra tout les
courriels qui n'ont pas trouvé preneur si l'on crée le fichier
~alias/.qmail-default.
Par défaut, les messages à destination de ces adresses sont dirigés
vers ~alias/Maildir car leur .qmail est vide.
Nous vérons plus loin la syntaxe (très simple) des .qmail.
Le fichier INSTALL nous recommande à présent de lire le
fichier INSTALL.mbox qui explique en long et en large le
pourquoi du comment des format de boites au lettres mbox et maildir.
Ceux qui veulent garder la livraison des messages dans
/var/spool/mail (ou équivalent, suivant l'UNIX utilisé)
doivent lire le fichier INSTALL.qsmhook qui explique
pourquoi c'est une mauvaise idée et comment la suivre malgrés tout.
Pour finir, sachez que les pages de manuel nommées maildir et mbox
livrées avec Qmail détaillent les deux formats de boite aux lettres
reconnus par le MDA qmail-local.
Il faut maintenant lire le fichier qmail-upgrade si l'on
veut savoir comment passer en douceur de Sendmail à Qmail. Pour ma
part, ma machine n'est pas une supper-passerelle de courriel, j'ai
tout simplement désinstallé Sendmail (après avoir pris soin de
sauvegarder les fichiers de configuration /etc/sendmail.cf et
/etc/aliases au cas où).
À ce stade, Qmail est installé mais ne tourne pas encore.
Vous pouvez passer à la phase de tests de préinstallation détaillée
dans le fichier INSTALL.
Se procurer (ou créer) le script qmail dans
/etc/rc.d/init.d/
(ou /etc/init.d/ pour une Debian). En voici un exemple
pour une redHat 4.2 :
#!/bin/sh
# Source function library.
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo -n "Starting qmail services: "
touch /var/lock/subsys/qmail
env - PATH="/var/qmail/bin:$PATH" \
csh -cf 'qmail-start ./Mailbox splogger qmail &' >/dev/null
echo "qmail-start launched"
;;
stop)
echo -n "Stopping qmail services: "
killall qmail-send
rm -f /var/lock/subsys/qmail
echo "qmail-send killed"
;;
*)
echo "Usage: qmail {start|stop}"
exit 1
esac
exit 0
Je suppose dès maintenant que Sendmail ne tourne plus et qu'il a été stoppé
par exemple par le script prévu à cet effet dans /etc/init.d/ (ou
/etc/rc.d/init.d/). Il faut maintenant remplacer le binaire Sendmail
par le «wrapper» Sendmail de Qmail : (Si vous avez désinstallé Sendmail, vous
pouvez sauter la première ligne)
root$ mv /usr/lib/sendmail /usr/lib/sendmail.bak root$ ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
Il ne faut pas oublier de rajouter les lignes suivantes au
/etc/profile pour les shells Bourne :
PATH="$PATH:/var/qmail/bin" MAIL="$HOME/Mailbox" export PATH MAIL
N'oubliez pas non plus de commenter les lignes SMTP et POP3 du
fichier /etc/inetd.conf en les préfixant d'une dièse
puis d'ordonner à inetd de se réinitialiser par un
root$ kill -HUP pid_de_inetd
Voilà, tout est en place, il ne reste plus qu'a lancer Qmail par la commande
root$ /etc/rc.d/init.d/qmail start
On peut continuer à vider la queue de Sendmail si nécessaire en faisant des
root$ /usr/lib/sendmail.bak -q
Vous pouvez procéder aux tests post-installatoires décrits dans le
fichier INSTALL. N'oubliez surtout pas que qmail-local
refusera de livrer du courrier dans le répertoire d'un utilisateur qui
serait en g+w ou o+w. D'ailleurs Qmail vous le dira dans ses logs.
Notons que pour l'instant, Qmail n'écoute ni le port 25 (SMTP), ni le port 110 (POP3). La mise en place du support de ces protocoles fait justement l'objet de la section suivante.