Enfin, on peut utiliser les modes debug de sendmail pour avoir des messages plus élaborés. Le premier mode qui nous intéresse permet de suivre l'envoi d'un courrier avec l'option -d21.2 :
$ /usr/lib/sendmail -d21.2 mdecore rewrite: ruleset canonify input: root rewrite: ruleset Canonify2 input: root rewrite: ruleset Canonify2 returns: root rewrite: ruleset canonify returns: root rewrite: ruleset parse input: root rewrite: ruleset Parse0 input: root rewrite: ruleset Parse0 returns: root rewrite: ruleset ParseLocal input: root rewrite: ruleset ParseLocal returns: root rewrite: ruleset Parse1 input: root rewrite: ruleset Parse1 returns: $# local $: root rewrite: ruleset parse returns: $# local $: root rewrite: ruleset final input: root rewrite: ruleset final returns: root rewrite: ruleset canonify input: root rewrite: ruleset Canonify2 input: root rewrite: ruleset Canonify2 returns: root rewrite: ruleset canonify returns: root rewrite: ruleset 1 input: root rewrite: ruleset 1 returns: root rewrite: ruleset final input: root rewrite: ruleset final returns: root rewrite: ruleset canonify input: mdecore rewrite: ruleset Canonify2 input: mdecore rewrite: ruleset Canonify2 returns: mdecore rewrite: ruleset canonify returns: mdecore rewrite: ruleset parse input: mdecore rewrite: ruleset Parse0 input: mdecore rewrite: ruleset Parse0 returns: mdecore rewrite: ruleset ParseLocal input: mdecore rewrite: ruleset ParseLocal returns: mdecore rewrite: ruleset Parse1 input: mdecore rewrite: ruleset Parse1 returns: $# local $: mdecore rewrite: ruleset parse returns: $# local $: mdecore rewrite: ruleset 2 input: mdecore rewrite: ruleset 2 returns: mdecore rewrite: ruleset EnvToL input: mdecore rewrite: ruleset EnvToL returns: mdecore rewrite: ruleset final input: mdecore rewrite: ruleset final returns: mdecore rewrite: ruleset localaddr input: mdecore rewrite: ruleset Local_localaddr input: mdecore rewrite: ruleset Local_localaddr returns: mdecore rewrite: RHS $&h => "" rewrite: ruleset localaddr returns: mdecore $
On voit la sélection de l'agent de transport, la réécriture de l'adresse de l'expéditeur (root) et du destinataire (mdecore).
On peut aussi utiliser l'option -d21.15 pour voir en détails la façon dont l'algorithme réécrites les adresses :
$ /usr/lib/sendmail -d21.15 mdecore rewrite: ruleset canonify input: root -----trying rule (line 507): $@ ----- rule fails -----trying rule (line 510): $* -----rule matches: $: $1 < @ > $1: bfffd8ec="root" rewritten as: root < @ > -----trying rule (line 511): $* < $* > $* < @ > ----- rule fails -----trying rule (line 512): @ $* < @ > ----- rule fails -----trying rule (line 513): $* : : $* < @ > ----- rule fails -----trying rule (line 514): : include : $* < @ > ----- rule fails -----trying rule (line 515): $* [ IPv6 $- ] < @ > ----- rule fails -----trying rule (line 516): $* : $* [ $* ] ----- rule fails -----trying rule (line 517): $* : $* < @ > ----- rule fails -----trying rule (line 518): $* < @ > -----rule matches: $: $1 $1: bfffd8ec="root" rewritten as: root -----trying rule (line 519): $* ; ----- rule fails -----trying rule (line 520): $* < $* ; > ----- rule fails -----trying rule (line 523): $@ ----- rule fails -----trying rule (line 526): $* -----rule matches: $: < $1 > $1: bfffd8ec="root" rewritten as: < root > -----trying rule (line 527): $+ < $* > ----- rule fails -----trying rule (line 528): < $* > $+ ----- rule fails -----trying rule (line 529): < > ----- rule fails -----trying rule (line 530): < $+ > -----rule matches: $: $1 $1: bfffd8ec="root" ... rewritten as: root rewrite: ruleset canonify returns: root rewrite: ruleset 1 input: root rewrite: ruleset 1 returns: root rewrite: ruleset final input: root -----trying rule (line 613): $* < @ > ----- rule fails -----trying rule (line 616): $* < @ $+ . > $* ----- rule fails -----trying rule (line 619): $* < @ *LOCAL* > $* ----- rule fails -----trying rule (line 622): $* < $+ > $* ----- rule fails -----trying rule (line 623): @ $+ : @ $+ : $+ ----- rule fails -----trying rule (line 624): @ $* ----- rule fails -----trying rule (line 627): $+ @ $- . UUCP ----- rule fails -----trying rule (line 630): $+ % $=w @ $=w ----- rule fails rewrite: ruleset final returns: root rewrite: ruleset canonify input: mdecore -----trying rule (line 507): $@ ----- rule fails -----trying rule (line 510): $* -----rule matches: $: $1 < @ > $1: bfffdfec="mdecore" rewritten as: mdecore < @ > -----trying rule (line 511): $* < $* > $* < @ > ----- rule fails -----trying rule (line 512): @ $* < @ > ----- rule fails -----trying rule (line 513): $* : : $* < @ > ----- rule fails -----trying rule (line 514): : include : $* < @ > ----- rule fails -----trying rule (line 515): $* [ IPv6 $- ] < @ > ----- rule fails -----trying rule (line 516): $* : $* [ $* ] ----- rule fails -----trying rule (line 517): $* : $* < @ > ----- rule fails -----trying rule (line 518): $* < @ > -----rule matches: $: $1 $1: bfffdfec="mdecore" ... rewritten as: < > mdecore -----trying rule (line 744): < > $+ -----rule matches: $: < > < $1 < > $&h > $1: bfffdd9c="mdecore" rewrite: RHS $&h => "" rewritten as: < > < mdecore < > > -----trying rule (line 745): < > < $+ < > + $* > ----- rule fails -----trying rule (line 746): < > < $+ < > $* > -----rule matches: $: < > < $1 > $1: bfffdd9c="mdecore" rewritten as: < > < mdecore > -----trying rule (line 747): < > < $+ + $* > $* ----- rule fails -----trying rule (line 748): < > < $+ > + $* ----- rule fails -----trying rule (line 749): < > < $+ > -----rule matches: $@ $1 $1: bfffdd9c="mdecore" rewritten as: mdecore rewrite: ruleset localaddr returns: mdecore $