checksendmail(8)

The program is a script that aids the testing of sendmail(8)'s various configuration files.

Section 8 sendmail-base bookworm source

Description

CHECKSENDMAIL(8) System Manager’s Manual 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) GNU November 14, 2000 CHECKSENDMAIL(8)