Выбрать главу

> 3,0 isaac

rewrite: ruleset   3   input: isaac

rewrite: ruleset  96   input: isaac

rewrite: ruleset  96 returns: isaac

rewrite: ruleset   3 returns: isaac

rewrite: ruleset   0   input: isaac

rewrite: ruleset 199   input: isaac

rewrite: ruleset 199 returns: isaac

rewrite: ruleset  98   input: isaac

rewrite: ruleset  98 returns: isaac

rewrite: ruleset 198   input: isaac

rewrite: ruleset 198 returns: $# local $: isaac

rewrite: ruleset   0 returns: $# local $: isaac

This output shows us how sendmail processes mail addressed to isaac on this system. Each line shows us what information has been supplied to a ruleset or the result obtained from processing by a ruleset. We told sendmail we wished to use rulesets 3 and 0 to process the address. Ruleset 0 is what is normally invoked and we forced ruleset 3 because it is not tested by default. The last line shows us that the result of ruleset 0 does indeed direct mail to isaac to the local mailer.

Next we'll test mail addressed to our SMTP address: isaac@vstout.vbrew.com. We should be able to produce the same end result as our last example:

# /usr/sbin/sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)

Enter <ruleset> <address>

> 3,0 isaac@vstout.vbrew.com

rewrite: ruleset   3   input: isaac @ vstout . vbrew . com

rewrite: ruleset  96   input: isaac < @ vstout . vbrew . com >

rewrite: ruleset  96 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset   3 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset   0   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 199   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 199 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset  98   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset  98 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 198   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 198 returns: $# local $: isaac

rewrite: ruleset   0 returns: $# local $: isaac

Again, this test passed. Next we'll test mail to our UUCP style address: vstout!isaac.

# /usr/sbin/sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)

Enter <ruleset> <address>

> 3,0 vstout!isaac

rewrite: ruleset   3   input: vstout ! isaac

rewrite: ruleset  96   input: isaac < @ vstout . UUCP >

rewrite: ruleset  96 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset   3 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset   0   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 199   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 199 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset  98   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset  98 returns: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 198   input: isaac < @ vstout . vbrew . com . >

rewrite: ruleset 198 returns: $# local $: isaac

rewrite: ruleset   0 returns: $# local $: isaac

This test has also passed. These tests confirm that any mail received for local users on this machine will be properly delivered irrespective of how the address is formatted. If you've defined any aliases for your machine, such as virtual hosts, you should repeat these tests for each of the alternate names by which this host is known to ensure they also work correctly.

Next we will test that mail addressed to other hosts in the vbrew.com domain is delivered directly to that host using the SMTP mailer:

# /usr/sbin/sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)

Enter <ruleset> <address>

> 3,0 isaac@vale.vbrew.com

rewrite: ruleset   3   input: isaac @ vale . vbrew . com

rewrite: ruleset  96   input: isaac < @ vale . vbrew . com >

rewrite: ruleset  96 returns: isaac < @ vale . vbrew . com . >

rewrite: ruleset   3 returns: isaac < @ vale . vbrew . com . >

rewrite: ruleset   0   input: isaac < @ vale . vbrew . com . >

rewrite: ruleset 199   input: isaac < @ vale . vbrew . com . >

rewrite: ruleset 199 returns: isaac < @ vale . vbrew . com . >

rewrite: ruleset  98   input: isaac < @ vale . vbrew . com . >

rewrite: ruleset  98 returns: isaac < @ vale . vbrew . com . >

rewrite: ruleset 198   input: isaac < @ vale . vbrew . com . >

rewrite: ruleset 198 returns: $# smtp $@ vale . vbrew . com . /

    $: isaac < @ vale . vbrew . com . >

rewrite: ruleset   0 returns: $# smtp $@ vale . vbrew . com . /

    $: isaac < @ vale . vbrew . com . >

We can see that this test has directed the message to the SMTP mailer to be forwarded directly to the vale.vbrew.com host and specifies the user isaac. This test confirms that our LOCAL_NET_CONFIG definition works correctly. For this test to succeed, the destination hostname must be able to be resolved correctly, so it must either have an entry in our /etc/hosts file, or in our local DNS. We can see what happens if the destination hostname isn't able to be resolved by intentionally specifying an unknown host:

# /usr/sbin/sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)

Enter <ruleset> <address>

> 3,0 isaac@vXXXX.vbrew.com

rewrite: ruleset   3   input: isaac @ vXXXX . vbrew . com

rewrite: ruleset  96   input: isaac < @ vXXXX . vbrew . com >

vXXXX.vbrew.com: Name server timeout

rewrite: ruleset  96 returns: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset   3 returns: isaac < @ vXXXX . vbrew . com >

== Ruleset 3,0 (3) status 75

rewrite: ruleset   0   input: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset 199   input: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset 199 returns: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset  98   input: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset  98 returns: isaac < @ vXXXX . vbrew . com >

rewrite: ruleset 198   input: isaac < @ vXXXX . vbrew . com >