On Wednesday 21 September 2005 12:14, Leopoldo Ghielmetti wrote:

> En effet sendmail ne lit pas le fichier nsswitch.conf mais cet autre
> fichier.

J'avais oublie...

Ceci mis a part, voici un bon moyen de tester ce que sendmail a l'intention de
faire avec une adresse :

mjtlnx3:/home/dc # sendmail -Csendmail.cf -bv [EMAIL PROTECTED]
[EMAIL PROTECTED] deliverable: mailer esmtp, host gmail.com., user [EMAIL 
PROTECTED]
mjtlnx3:/home/dc #   

Dans ce cas, on voit que sendmail va tenter d'etablir une connexion en 
utilisant le 'mailer' esmtp.
Ceci sera une connexion directe avec le serveur de mail (suppose) gmail.com

Si maintenant je rajoute la ligne suivante dans mon fichier sendmail.cf

DSmy-smart-relay.ch

L'execution de la commande precedente me donnera :

mjtlnx3:/home/dc # sendmail -Csendmail.cf -bv [EMAIL PROTECTED]
[EMAIL PROTECTED] deliverable: mailer relay, host my-smart-relay.ch, user 
[EMAIL PROTECTED]
mjtlnx3:/home/dc #   

Dans ce cas, le mail sera envoye tel quel a 'my-smart-relay.ch'

L'option -bv de sendmail permet de tester ce que sendmail va vraiment faire 
avec cette adresse.
C'est tres utile pouyr debusquer les comptes qui ont un ~/.forward ou un alias 
qui trainent. Toute
la chaine d'execution de sendmail est executee et le resultat est juste 
"recuperer" et afficher avant
l'appel du "mailer" (au sens sendmail). Ne l'oubliez donc pas !


Il est possible de debugger de maniere plus profonde les differentes regles de 
"transformation" et 
interpretation des adresses passees a sendmail. On peut tester chaque "ruleset' 
de maniere 
individuelle. Ceci de la manire suivante :

mjtlnx3:/home/dc # sendmail -Csendmail.cf -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 [EMAIL PROTECTED]
parse              input: toto @ gmail . com
Parse0             input: toto @ gmail . com
Parse0           returns: toto @ gmail . com
Parse1             input: toto @ gmail . com
Parse1           returns: $# local $: toto @ gmail . com
parse            returns: $# local $: toto @ gmail . com
> 3 [EMAIL PROTECTED]
canonify           input: toto @ gmail . com
Canonify2          input: toto < @ gmail . com >
Canonify2        returns: toto < @ gmail . com . >
canonify         returns: toto < @ gmail . com . >
> 5 [EMAIL PROTECTED]
localaddr          input: toto @ gmail . com
MailerToTriple     input: < vews01 . localnet > toto @ gmail . com < @ vews01 . 
localnet >
MailerToTriple   returns: $# relay $@ vews01 . localnet $: toto @ gmail . com < 
@ vews01 . localnet >
localaddr        returns: $# relay $@ vews01 . localnet $: toto @ gmail . com < 
@ vews01 . localnet >

(y'avait un DH... qui trainait)

>ParseRecipient [EMAIL PROTECTED]
ParseRecipient     input: toto @ gmail . com
CanonAddr          input: toto @ gmail . com
canonify           input: toto @ gmail . com
Canonify2          input: toto < @ gmail . com >
Canonify2        returns: toto < @ gmail . com . >
canonify         returns: toto < @ gmail . com . >
Parse0             input: toto < @ gmail . com . >
Parse0           returns: toto < @ gmail . com . >
CanonAddr        returns: toto < @ gmail . com . >
ParseRecipient   returns: toto < @ gmail . com > dequote local part
> mjtlnx3:/home/dc #   

Dans ce cas, j'ai teste comment sendmail traitait mon adresse [EMAIL PROTECTED] 
dans les rulesets :

0, 3, 5 et ParseRecipient

On peut donc tester toutes les etapes. On voit par exemple que 'ParseRecipient' 
a appele 
'CanonAddr' qui lui-meme a appele 'canonify', appelant 'Canonify2', pour 
ensuite retourne dans 
'ParseRecipient', engendrant ensuite un appel a 'Parse0'... et revenir a la fin 
de 'ParseRecipient'.

Ceci est utile en cas de re-ecriture de certaines regles (optimisation, 
raccourci, introduction de programmes
intermediaires... etc.), ou en cas de relay un peu complexe avec re-ecriture 
des adresses avec masquage
'maison'. On ne se lance la-dedans que si l'on a epuise toutes les autres 
solutions de recherche
de problemes. Mais au moins, ca evite de devoir se taper le code source pour le 
debugging :-)

dc



_______________________________________________
gull mailing list
[email protected]
http://lists.alphanet.ch/mailman/listinfo/gull

Répondre à