Ce travail effectué, il reste à tester la configuration : plusieurs solutions s'offrent à nous. Chacune d'elles n'excluant pas l'utilisation des autres.
Commençons d'abord par vérifier que sendmail a été correctement
installé :
/usr/sbin/sendmail -d0.1 -bt < /dev/null
doit vous répondre quelque chose comme :
Version 8.8.8
Compiled with: LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND NETINET
NETUNIX NEWDB NIS QUEUE SCANF SMTP USERDB
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = machine
(canonical domain name) $j = machine.domaine.fr
(subdomain name) $m = domaine.fr
(node name) $k = machine.domaine.fr
========================================================
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
Créez un fichier test.mail contenant les lignes suivantes :
Subject: test local
Premiere ligne de mon message
(sans oublier la ligne vide...).
et faites :
/usr/sbin/sendmail -v moi < test.mail
les lignes suivantes doivent s'afficher :
moi... Connecting to local...
moi... Sent
Lancez la commande mail, ou tout autre programme de lecture du courrier et
vérifiez que le message a été reçu et contient les lignes suivantes :
From root Tue Jun 23 02:17:40 1998
Return-Path: <root>
Received: (from root@localhost)
by machine.domaine.fr (8.8.8/8.8.8/Eric Jacoboni - 26/05/98) id CAA03468
for moi; Tue, 23 Jun 1998 02:17:40 +0200
Date: Tue, 23 Jun 1998 02:17:40 +0200
From: root <moi@mail.fai.fr>
Message-Id: <199806230017.CAA03468@machine.domaine.fr>
Subject: test local
Premiere ligne de mon message
Ce simple petit test nous permet de constater que sendmail est bien
capable d'acheminer le courrier en local et qu'il a su réécrire l'adresse de
l'expéditeur (root) en moi@mail.fai.fr selon la règle de réécriture
décrite dans le fichier /etc/genericstable
Ces tests consistent à tester qu'une adresse E-mail sera correctement
reconnue et transformée par sendmail :
Tapez la commande suivante :
/usr/sbin/sendmail -bt
Vous devez obtenir un prompt ressemblant à celui-ci :
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>
Entrez alors les deux lignes suivantes :
/tryflags ES
/try smtp moi
Plusieurs lignes s'afficheront pour énumérer les règles que sendmail met
en oeuvre pour transformer l'adresse de l'expéditeur :
Trying envelope sender address moi for mailer smtp
rewrite: ruleset 3 input: moi
rewrite: ruleset 96 input: moi
(...)
rewrite: ruleset 61 returns: moi < @ *LOCAL* >
rewrite: ruleset 94 input: moi < @ *LOCAL* >
rewrite: ruleset 93 input: moi < @ *LOCAL* >
rewrite: ruleset 3 input: ego @ mail . fai . fr
(...)
rewrite: ruleset 4 input: ego < @ mail . fai . fr >
rewrite: ruleset 4 returns: ego @ mail . fai . fr
Rcode = 0, addr = moi@mail.fai.fr
Ce qui est important, ici, est que sendmail a reconnu que moi était
une adresse locale et qu'il l'a transformée en votre adresse telle que
vous l'avez masquée. On notera que l'adresse finale a été construite en
utilisant le contenu de /etc/genericstable.
Essayons maintenant avec une adresse qui ne soit pas la nôtre,
dupont@durand.org. L'affichage doit se terminer par Rcode = 0, addr =
dupont@durand.org.
Un réflecteur est une machine qui reçoit nos messages et nous les renvoie
après avoir copié l'en-tête de notre message tel qu'il a été reçu. Ceci est
plus sûr que de s'envoyer un message à soi-même car, alors, sendmail
peut très bien avoir réécrit cet en-tête (ceci ne veut pas dire qu'il ne
faut pas tester cette méthode, mais qu'elle est un nécessaire non
suffisant...). Une réponse d'un réflecteur prouve que la chaîne de
messagerie fonctionne (on peut émettre et recevoir) !
Plusieurs réflecteurs existent : parmi eux, echo@cnam.fr et
echo@univ-rennes1.fr. Le mieux est de tester les deux. Bien sûr, il
faudra avoir installé un logiciel pour écrire et recevoir du courrier en
utilisant sendmail. Nombreux sont ces programmes : certains
fonctionnent en mode texte (pine, elm, etc.), d'autres nécessitent X
(xfmail, xmail etc.). Théoriquement, vous devez au moins avoir le
programme mail qui se trouve dans le répertoire /bin : ce
n'est sûrement pas le plus pratique à utiliser mais il peut suffire pour le
moment.
Supposons que vous ayez configuré correctement un de ces logiciels : vous
êtes déconnectés et vous pouvez déjà vous poster un courrier (adresse
moi : ce qui correspond à la réponse de la commande whoami).
Normalement, comme nous l'avons vu plus haut, dès que vous l'avez envoyé, vous
devez le recevoir...
Si tout va bien, le fichier /var/spool/mail/moi (rappel :
remplacer ici moi par votre nom de compte) contiendra le message de
test. Sinon, sendmail produira un message d'erreur qu'il faudra
interpréter.
Bon, admettons que tout fonctionne en local. Essayons maintenant avec une
adresse non locale : celle d'un réflecteur, par exemple. Écrivez un
message à l'adresse echo@cnam.fr, et, toujours déconnecté,
envoyez-le. Ainsi que nous le disions plus haut, ce message est placé dans
/var/spool/mqueue. En fait, il y est représenté par 2 fichiers :
l'un constitue l'« enveloppe » et l'autre le « contenu ».
À tout moment, vous pouvez interroger la file d'attente par la commande
mailq qui, ici, doit vous indiquer qu'un message à destination
d'echo@cnam.fr est en attente. Connectez-vous à votre F.A.I puis
invoquez la commande suivante :
/usr/sbin/sendmail -q
L'option -q oblige sendmail à tenter d'envoyer tous les messages
en attente.
Lorsque cette commande est exécutée, vous pouvez vérifier avec mailq
que la file d'attente est vide : vos messages sont partis.
Attendez un peu, puis faites un fetchmail pour récupérer les nouveaux
messages sur le serveur pop de votre F.A.I. Normalement, vous devez récupérer
un message, celui qui vous a été renvoyé par le réflecteur. Lisez-le à l'aide
de votre programme de lecture de courrier. Le contenu doit ressembler à
ceci :
------ Le serveur echo du domaine cnam.fr
------ a recu votre message le mar 23 jun 16:09:44 MET DST 1998
------ Ci-dessous les en-tetes et le corps de votre message
> From ego@mail.fai.fr Tue Jun 23 16:09:43 1998
> Received: from tom.oleane.net (root@tom.oleane.net [194.2.28.14])
> by fermi.cnam.fr (8.8.8/jpm-301097) with ESMTP id QAA10883
> for <echo@cnam.fr>; Tue, 23 Jun 1998 16:09:43 +0200 (MET DST)
> Return-Path: <ego@mail.fai.fr>
> Received: from machine.domaine.fr (dyn-6.tls.oleane.com [194.2.21.6])
> by tom.oleane.net (8.8.8/8.8.8) with ESMTP id QAA27629
> for <echo@cnam.fr>; Tue, 23 Jun 1998 16:09:41 +0200
> Received: (from moi@localhost)
> by machine.domaine.fr (8.8.8/8.8.8/Eric Jacoboni - 23/06/98) id QAA02395;
> Tue, 23 Jun 1998 16:07:07 +0200
> To: echo@cnam.fr
> Subject: test courrier oleane
> From: Eric Jacoboni <ego@mail.fai.fr>
> Date: 23 Jun 1998 16:07:06 +0200
> Message-ID: <m3hg1c5i0l.fsf@machine.domaine.fr>
> Lines: 6
> X-Mailer: Gnus v5.5/XEmacs 20.4 - "Emerald"
------
>
> Test
------ Fin de votre message
Ce qu'il est important de noter est la première ligne, dite « From
d'enveloppe », commençant par From (et qu'il ne faut surtout pas
confondre avec la ligne d'en-tête commençant par From: !). Elle doit
contenir votre adresse telle que vous l'avez configurée pour l'enveloppe,
et, en aucun cas, l'adresse de votre machine (celle qui apparaît dans la
dernière ligne received), sinon certains serveurs la rejetteront.