Page précédente Page suivante Table des matières

3. Vérification de la configuration

Ce travail effectué, il reste à tester la configuration : plusieurs solutions s'offrent à nous. Chacune d'elles n'excluant pas l'utilisation des autres.

3.1 Vérification de l'installation

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>

3.2 Test d'envoi de courrier local

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

3.3 Test des règles d'écriture

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.

3.4 Utilisation de réflecteurs et envoi du courrier

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.


Page précédente Page suivante Table des matières