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
