Provided by: sendmail-base_8.15.2-13_all bug


     checksendmail — verify sendmail address transformations.


     checksendmail [-a] [-d] [-b] [-C] [-b sendmail_binary] [-l log_file] [-r resolve]
                   [-T test.address]


     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:


     The input file can contain comments started with a # and blank lines.


         -a          Show aliasing of local addresses in mail address resolution phase of testing
         -d          Precede each address translation line with ruleset sequence summary
         -C  Use the sendmail configuration file instead of the default
                     /etc/ file.
         -b sendmail_binary
                     Use the specified sendmail_binary as the path to invoke sendmail (instead of
         -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.


     The following command will pass the addresses in address.resolve through sendmail using the
     configuration information in

     example% cat address.resolve

     example% checksendmail -C
     system:               current dir: /tmp/Checksendmail
     resolve file: address.resolve
     sendmail binary: /usr/sbin/sendmail     sendmail version: 8.9.3
     config file: /etc/           config file version: V8/Berkeley

     Mail address resolution
     user                        --(ether )-->  user[rmtc]
     user@site                   --(ether )-->  user@site[rmtc]               --(ether )-->[rmtc]

     `To' address transformations for mailer ether:
     user                        ---->  user
     user@site                   ---->  user@site               ---->

     `From' address transformations for mailer ether:
     user                        ---->  user
     user@site                   ---->  user               ---->  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:

   --(ether )-->[rmtc]

     The input address resolves to use the ether mailer.  That mailer is directed
     to send the mail to to the user at site rmtc (as indicated in the square

     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
                             qualified at two levels
                             qualified all the way
           rmtc!user         local but specified as uucp
           user@summit       a workstation (normally delivered locally, though)
                             same but more qualified
                             same but fully qualified
           summit!user       same but specified as uucp
           user@prisma       Backward compatibility tests
           user@central      Superior domain testing
                             more qualified, but unknown
                             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
       Standard trivial address
                             fully qualified but unknown machine
       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
                             Trickier address
                             Mixed uucp/domain
                             Mixed double uucp/domain


     Note that checksendmail is a perl script.  If your site does not have perl(1), it can be
     obtained via anonymous ftp from

     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.


     Gene Kim
     Rob Kolstad
     Jeff Polk

     Modified by Robert Harker