Il est souhaitable de tester une nouvelle configuration avec l'option -bt. Par exemple :
soleil$ /usr/lib/sendmail -bt -C $HOME/sendmail.cf.new
L'option -C spécifie un fichier de configuration différent du fichier de configuration par défaut. L'option -bt demande à sendmaild'utiliser le mode test. L'affichage est alors :
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> >
Il faut alors entrer un ou plusieurs ensembles de règles, puis une adresse à tester. Par exemple :
> 3 pda@uvsq.fr rewrite: ruleset 3 input: pda @ uvsq . fr rewrite: ruleset 19 input: pda < @ uvsq . fr > rewrite: ruleset 19 returns: pda < @ uvsq . fr . LOCAL > rewrite: ruleset 3 returns: pda < @ uvsq . fr . LOCAL >
Dans cet exemple, la règle 3 est appelée avec comme entrée
pda@uvsq.fr
. La règle 3 appelle la règle 19 (elle est
programmée comme ça dans sendmail.cf.new), qui renvoie
l'adresse pda<@uvsq.fr.LOCAL>
après toutes les réécritures.
Cette nouvelle adresse est également l'adresse que renvoie la règle
3, c'est donc l'adresse canonisée.
On peut aussi enchaîner plusieurs ensembles :
> 3,0 pda@prism.uvsq.fr rewrite: ruleset 3 input: pda @ prism . uvsq . fr rewrite: ruleset 19 input: pda < @ prism . uvsq . fr > rewrite: ruleset 19 returns: pda < @ prism . uvsq . fr . INTERNE > rewrite: ruleset 3 returns: pda < @ prism . uvsq . fr . INTERNE > rewrite: ruleset 0 input: pda < @ prism . uvsq . fr . INTERNE > rewrite: ruleset 0 returns: $# smtp $@ [ mailhost . prism . uvsq . fr ] $: pda < @ prism . uvsq . fr . INTERNE >
Dans cet exemple, l'adresse est passée par la règle 3, puis l'adresse
une fois canonisée (c'est-à-dire sous la forme
pda<@prism.uvsq.fr.INTERNE>
dans ce cas) est transmise à la
règle 0. Le but de celle-ci étant de déterminer l'agent de transport,
la règle 0 se termine par un triplet (agent de transport, relais,
nouvelle enveloppe). L'agent de transport est ici smtp, le
relais est [mailhost.prism.uvsq.fr]
ce qui signifie, en
version 8, qu'il ne faut pas consulter les MX puisque le nom est
entre crochets. La nouvelle enveloppe correspond à l'adresse
originale dans ce cas.
Pour tester la réécriture de l'adresse de l'expéditeur, on peut faire, en considérant que la règle 11 est la règle de réécriture des adresses d'expéditeur pour l'agent de transport SMTP :
> 3,1,11,4 pda rewrite: ruleset 3 input: pda rewrite: ruleset 19 input: pda rewrite: ruleset 19 input: pda < @ . LOCAL > rewrite: ruleset 19 returns: pda < @ . LOCAL > rewrite: ruleset 19 returns: pda < @ . LOCAL > rewrite: ruleset 3 returns: pda < @ . LOCAL > rewrite: ruleset 1 input: pda < @ . LOCAL > rewrite: ruleset 17 input: pda < @ . LOCAL > rewrite: ruleset 17 returns: Pierre . David < @ . LOCAL > rewrite: ruleset 1 returns: Pierre . David < @ . LOCAL > rewrite: ruleset 11 input: Pierre . David < @ . LOCAL > rewrite: ruleset 16 input: Pierre . David < @ . LOCAL > rewrite: ruleset 16 returns: Pierre . David < @ uvsq . fr . LOCAL > rewrite: ruleset 11 returns: Pierre . David < @ uvsq . fr . LOCAL > rewrite: ruleset 4 input: Pierre . David < @ uvsq . fr . LOCAL > rewrite: ruleset 4 returns: Pierre . David @ uvsq . fr