CHECKSENDMAIL(8)

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  Precede 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)