next up previous contents
suivant: Utiliser le mode debug monter: Tester notre serveur de précédent: Compilation des bases de   Table des matières

Utiliser le mode test de sendmail

On peut maintenant tester la façon dont sendmail réécrit les adresses, et décide à quel mailer envoyer le message. Pour cela, on utilise l'option -bt.

On peut commencer par tester si les courriers locaux sont bien redistribués en utilisant le mailer local :

[mdecore@aline mdecore]$ sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 mdecore
canonify           input: mdecore
Canonify2          input: mdecore
Canonify2        returns: mdecore
canonify         returns: mdecore
parse              input: mdecore
Parse0             input: mdecore
Parse0           returns: mdecore
ParseLocal         input: mdecore
ParseLocal       returns: mdecore
Parse1             input: mdecore
Parse1           returns: $# local $: mdecore
parse            returns: $# local $: mdecore
> 3,0 mdecore@aline
canonify           input: mdecore @ aline
Canonify2          input: mdecore < @ aline >
Canonify2        returns: mdecore < @ aline . >
canonify         returns: mdecore < @ aline . >
parse              input: mdecore < @ aline . >
Parse0             input: mdecore < @ aline . >
Parse0           returns: mdecore < @ aline . >
ParseLocal         input: mdecore < @ aline . >
ParseLocal       returns: mdecore < @ aline . >
Parse1             input: mdecore < @ aline . >
Parse1           returns: $# local $: mdecore
parse            returns: $# local $: mdecore
>

ou, avec le kit-jussieu :

> 3,0 waves
rewrite: ruleset   3   input: waves
rewrite: ruleset  19   input: waves
rewrite: ruleset  19   input: waves < @ . LOCAL >
rewrite: ruleset  19 returns: waves < @ machine . division . domaine . fr . EXTERNE >
rewrite: ruleset  19 returns: waves < @ machine . division . domaine . fr . EXTERNE >
rewrite: ruleset   3 returns: waves < @ machine . division . domaine . fr . EXTERNE >
rewrite: ruleset   0   input: waves < @ machine . division . domaine . fr . EXTERNE >
rewrite: ruleset   0 returns: $# smtp $@ [ mailhost . division . domaine . fr ] $: waves < @ machine . division . domaine . fr >
> 3,0 mdecore@linux-france.org
rewrite: ruleset   3   input: mdecore @ linux-france . org
rewrite: ruleset  19   input: mdecore < @ linux-france . org >
rewrite: ruleset  19 returns: mdecore < @ linux-france . org . EXTERNE >
rewrite: ruleset   3 returns: mdecore < @ linux-france . org . EXTERNE >
rewrite: ruleset   0   input: mdecore < @ linux-france . org . EXTERNE >
rewrite: ruleset   0 returns: $# smtp $@ [ mailhost . division . domaine . fr ] $: mdecore < @ linux-france . org >
>

On constate que le mailer utilisé sera bien le mailer local (returns: $# local) dans les deux cas.

Voyons maintenant pour les autres machines de notre réseau :

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 postmaster@anais           
canonify           input: postmaster @ anais
Canonify2          input: postmaster < @ anais >
Canonify2        returns: postmaster < @ anais >
canonify         returns: postmaster < @ anais >
parse              input: postmaster < @ anais >
Parse0             input: postmaster < @ anais >
Parse0           returns: postmaster < @ anais >
ParseLocal         input: postmaster < @ anais >
ParseLocal       returns: postmaster < @ anais >
Parse1             input: postmaster < @ anais >
Mailertable        input: < anais > postmaster < @ anais >
Mailertable      returns: postmaster < @ anais >
MailerToTriple     input: < > postmaster < @ anais >
MailerToTriple   returns: postmaster < @ anais >
Parse1           returns: $# esmtp $@ anais $: postmaster < @ anais >
parse            returns: $# esmtp $@ anais $: postmaster < @ anais >
>

Ce test montre que le courrier sera directement distribué à l'utilisateur postmaster de l'hôte anais via esmtp (returns: $# esmtp $@ anais $: postmaster < @ anais >).

On peut enfin tester les adresses extérieures à notre réseau, en prenant celle chez notre fournisseur d'accès par exemple :

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 mdecore@free.fr
canonify           input: mdecore @ free . fr
Canonify2          input: mdecore < @ free . fr >
Canonify2        returns: mdecore < @ free . fr . >
canonify         returns: mdecore < @ free . fr . >
parse              input: mdecore < @ free . fr . >
Parse0             input: mdecore < @ free . fr . >
Parse0           returns: mdecore < @ free . fr . >
ParseLocal         input: mdecore < @ free . fr . >
ParseLocal       returns: mdecore < @ free . fr . >
Parse1             input: mdecore < @ free . fr . >
Mailertable        input: < free . fr > mdecore < @ free . fr . >
Mailertable        input: free . < fr > mdecore < @ free . fr . >
Mailertable      returns: mdecore < @ free . fr . >
Mailertable      returns: mdecore < @ free . fr . >
MailerToTriple     input: < > mdecore < @ free . fr . >
MailerToTriple   returns: mdecore < @ free . fr . >
Parse1           returns: $# esmtp $@ free . fr . $: mdecore < @ free . fr . >
parse            returns: $# esmtp $@ free . fr . $: mdecore < @ free . fr . >
>

Le résultat ne diffère pas de l'emple précédent, le serveur ESMTP du domaine free.fr sera contacté pour distribuer le courrier à l'utilisateur mdecore.

Si on a configuré notre réseau de telle sorte que tous les autres domaines que le notre ne soient pas reconus, on passe par le serveur du fournisseur d'accès. Dans ce cas, on aura comme sortie :

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 postmaster@unautredomaine.com
canonify           input: postmaster @ unautredomaine . com
Canonify2          input: postmaster < @ unautredomaine . com >
Canonify2        returns: postmaster < @ unautredomaine . com . >
canonify         returns: postmaster < @ unautredomaine . com . >
parse              input: postmaster < @ unautredomaine . com . >
Parse0             input: postmaster < @ unautredomaine . com . >
Parse0           returns: postmaster < @ unautredomaine . com . >
ParseLocal         input: postmaster < @ unautredomaine . com . >
ParseLocal       returns: postmaster < @ unautredomaine . com . >
Parse1             input: postmaster < @ unautredomaine . com . >
MailerToTriple     input: < smtp8 : [ mail . fai . fr ] > postmaster 
< @ unautredomaine . com . >
MailerToTriple   returns: $# smtp8 $@ [ mail . fai . fr ] $: postmaster 
< @ unautredomaine . com . >
Parse1           returns: $# smtp8 $@ [ mail . fai . fr ] $: postmaster 
< @ unautredomaine . com . >
parse            returns: $# smtp8 $@ [ mail . fai . fr ] $: postmaster 
< @ unautredomaine . com . >
>

On constate ici que le serveur SMTP mail.fai.fr sera contacté pour redistribué le courrier à l'utilisateur postmaster du domaine unautredomaine.com (returns: $# smtp8 $@ [ mail . fai . fr ] $: postmaster < @ unautredomaine . com . >). En fait, tous les noms de domaines non reconnus sont supposés être exérieurs à notre réseau, si bien qu'on considère qu'il faut passer par le fournisseur d'accès. Le nom de domaine peut très bien ne pas exister, il passera quand même par fai.


next up previous contents
suivant: Utiliser le mode debug monter: Tester notre serveur de précédent: Compilation des bases de   Table des matières
2004-07-17