NAME
checksendmail - verify sendmail address transformations.
SYNOPSIS
checksendmail [-a] [-d] [-b] [-C file.cf] [-b sendmail_binary]
[-l log_file] [-r resolve] [-T test.address]
DESCRIPTION
The checksendmail program is a perl script that aids the testing of
sendmail(8) 's various configuration files. checksendmail passes typical
addresses (supplied in input files) through sendmail and prints the
results of the resolution and transformation routines.
The input files contain a list of addresses, one per line. For example:
user
user@site
user@site.com
The input file can contain comments started with a # and blank lines.
OPTIONS
-a Show aliasing of local addresses in mail address
resolution phase of testing
-d Preceed each address translation line with ruleset
sequence summary
-C file.cf Use the sendmail configuration file file.cf instead of
the default /etc/sendmail.cf file.
-b sendmail_binary
Use the specified sendmail_binary as the path to invoke
sendmail (instead of /usr/sbin/sendmail).
-l log_file
Log sendmail address test mode debugging output to
log_file
-r resolve Use resolve as the input file for the addresses to be
used for mail resolving. Defaults to address.resolve.
-T test.address
Use test.address as the single address to test. Cannot
be used in conjunction with file setting flags.
EXAMPLES
The following command will pass the addresses in address.resolve through
sendmail using the configuration information in myconfig.cf.
example% cat address.resolve
user
user@site
user@site.com
example% checksendmail -C myconfig.cf
system: myhost.gadget.com current dir: /tmp/Checksendmail
resolve file: address.resolve
sendmail binary: /usr/sbin/sendmail sendmail version: 8.9.3
config file: /etc/sendmail.cf config file version: V8/Berkeley
Mail address resolution
user --(ether )--> user[rmtc]
user@site --(ether )--> user@site[rmtc]
user@site.com --(ether )--> user@site.com[rmtc]
`To' address transformations for mailer ether:
user ----> user
user@site ----> user@site
user@site.com ----> user@site.com
`From' address transformations for mailer ether:
user ----> user
user@site ----> user
user@site.com ----> user
The first section of the output shows how the addresses in the input
files are resolved by sendmail(8). Consider the following output line:
user@site.com --(ether )--> user@site.com[rmtc]
The input address user@site.com resolves to use the ether mailer. That
mailer is directed to send the mail to to the user user@site.com at site
rmtc (as indicated in the square brackets).
The two later sections of output show how the addresses specified as the
To and From address are transformed in the text of the headers. In the
example above, the To addresses are untouched. The From addresses,
however, all lose their machine information on the way through the
mailer:
user@site ----> user
This may be desirable when using a configuration file on a workstation
which is to be hidden as a mailhost from the rest of the network.
The following is a set of addresses used at one site for the purposes of
testing address resolution. Comments after the addresses detail why
particular addresses are present:
user Standard trivial address
user@rmtc qualified at one level
user@rmtc.central
qualified at two levels
user@rmtc.central.sun.com
qualified all the way
rmtc!user local but specified as uucp
user@summit a workstation (normally delivered locally,
though)
user@summit.central
same but more qualified
user@summit.central.sun.com
same but fully qualified
summit!user same but specified as uucp
user@prisma Backward compatibility tests
user@prisma.com
prisma!user
user@central Superior domain testing
user@machine.central
more qualified, but unknown
user@summit.central
more qualified and known
user@eng name in faraway domain
user@machine.eng unknown machine in faraway domain
user@summit.eng local machine, far away domain
user@hoback far away machine
user@machine apparently local but unknown machine
user@sun.com Standard trivial address
user@machine.dom.sun.com
fully qualified but unknown machine
user@foo.com standard, known, really far away domain
user@foo.dom standard, unknown, really far away domain
site!user Single level uucp
site1!site2!user Double level uucp
user@foo.dom@bar.dom
Trickier address
site!user@foo.dom
Mixed uucp/domain
site!user@uunet.uu.net
Mixed double uucp/domain
NOTES
Note that checksendmail is a perl script. If your site does not have
perl(1), it can be obtained via anonymous ftp from ftp.uu.net.
sendmail requires that the user have access to directory specified by the
OQ parameter in the configuration file (normally /usr/spool/mqueue).
checksendmail verifies that the user has access to this directory before
allowing the test to continue.
AUTHORS
Gene Kim
Rob Kolstad
Jeff Polk
Modified by Robert Harker
SEE ALSO
sendmail(8)