clarifications and corrections
[unix-history] / usr / src / usr.sbin / sendmail / doc / op / op.me
index 8932f42..dea786d 100644 (file)
@@ -1,16 +1,18 @@
 .\" Copyright (c) 1983 Eric P. Allman
 .\" Copyright (c) 1983 Eric P. Allman
-.\" Copyright (c) 1983 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1983, 1993
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\" %sccs.include.redist.roff%
 .\"
 .\"
 .\" %sccs.include.redist.roff%
 .\"
-.\"    @(#)op.me       6.24 (Berkeley) %G%
+.\"    @(#)op.me       8.16 (Berkeley) %G%
 .\"
 .\" eqn op.me | pic | troff -me
 .\"
 .\" eqn op.me | pic | troff -me
-.eh 'SMM:07-%''Sendmail Installation and Operation Guide'
-.oh 'Sendmail Installation and Operation Guide''SMM:07-%'
+.eh 'SMM:08-%''Sendmail Installation and Operation Guide'
+.oh 'Sendmail Installation and Operation Guide''SMM:08-%'
 .\" SD is lib if sendmail is installed in /usr/lib, sbin if in /usr/sbin
 .ds SD sbin
 .\" SD is lib if sendmail is installed in /usr/lib, sbin if in /usr/sbin
 .ds SD sbin
+.\" SB is bin if newaliases/mailq are installed in /usr/bin, ucb if in /usr/ucb
+.ds SB bin
 .nr si 3n
 .de $0
 .(x
 .nr si 3n
 .de $0
 .(x
@@ -25,6 +27,7 @@
 \\$1 \\$2.  \\$3
 .)x
 ..
 \\$1 \\$2.  \\$3
 .)x
 ..
+.sc
 .+c
 .(l C
 .sz 16
 .+c
 .(l C
 .sz 16
@@ -40,9 +43,9 @@ University of California, Berkeley
 Mammoth Project
 eric@CS.Berkeley.EDU
 .sp
 Mammoth Project
 eric@CS.Berkeley.EDU
 .sp
-Version 6.24
+Version 8.16
 .sp
 .sp
-For Sendmail Version 6.37
+For Sendmail Version 8.6
 .)l
 .sp 2
 .pp
 .)l
 .sp 2
 .pp
@@ -122,19 +125,15 @@ in this version of
 The appendixes give a brief
 but detailed explanation of a number of features
 not described in the rest of the paper.
 The appendixes give a brief
 but detailed explanation of a number of features
 not described in the rest of the paper.
-.bp 5
+.bp 7
 .sh 1 "BASIC INSTALLATION"
 .pp
 .sh 1 "BASIC INSTALLATION"
 .pp
-.i
-This section is a very rough rewrite;
-please don't assume that it is already completely correct.
-However,
-please send me suggestions so that later versions of this document
-can be more accurate.
-.pp
-There are two basic steps to installing sendmail.
+There are two basic steps to installing
+.i sendmail .
 The hard part is to build the configuration table.
 The hard part is to build the configuration table.
-This is a file that sendmail reads when it starts up
+This is a file that
+.i sendmail
+reads when it starts up
 that describes the mailers it knows about,
 how to parse addresses,
 how to rewrite the message header,
 that describes the mailers it knows about,
 how to parse addresses,
 how to rewrite the message header,
@@ -145,7 +144,8 @@ by adjusting an existing off-the-shelf configuration.
 The second part is actually doing the installation,
 i.e., creating the necessary files, etc.
 .pp
 The second part is actually doing the installation,
 i.e., creating the necessary files, etc.
 .pp
-The remainder of this section will describe the installation of sendmail
+The remainder of this section will describe the installation of
+.i sendmail
 assuming you can use one of the existing configurations
 and that the standard installation parameters are acceptable.
 All pathnames and examples
 assuming you can use one of the existing configurations
 and that the standard installation parameters are acceptable.
 All pathnames and examples
@@ -154,7 +154,7 @@ are given from the root of the
 subtree,
 normally
 .i /usr/src/usr.\*(SD/sendmail
 subtree,
 normally
 .i /usr/src/usr.\*(SD/sendmail
-on 4.3BSD.
+on 4.4BSD.
 .pp
 If you are loading this off the tape,
 continue with the next session.
 .pp
 If you are loading this off the tape,
 continue with the next session.
@@ -162,7 +162,9 @@ If you have a running binary already on your system,
 you should probably skip to section 1.2.
 .sh 2 "Compiling Sendmail"
 .pp
 you should probably skip to section 1.2.
 .sh 2 "Compiling Sendmail"
 .pp
-All sendmail source is in the
+All
+.i sendmail
+source is in the
 .i src
 subdirectory.
 If you are running on a 4.4BSD system,
 .i src
 subdirectory.
 If you are running on a 4.4BSD system,
@@ -212,8 +214,7 @@ if you do,
 old databases are read,
 but when a new database is created it will be in NEWDB format.
 As a nasty hack,
 old databases are read,
 but when a new database is created it will be in NEWDB format.
 As a nasty hack,
-if you have both NEWDB and one of the DB formats defined,
-and you also define YPCOMPAT,
+if you have NEWDB, NDBM, and NIS defined,
 and if the file
 .i /var/yp/Makefile
 exists and is readable,
 and if the file
 .i /var/yp/Makefile
 exists and is readable,
@@ -276,12 +277,12 @@ make install
 This should install the binary in
 /usr/\*(SD
 and create links from
 This should install the binary in
 /usr/\*(SD
 and create links from
-/usr/bin/newaliases
+/usr/\*(SB/newaliases
 and
 and
-/usr/bin/mailq
+/usr/\*(SB/mailq
 to
 /usr/\*(SD/sendmail.
 to
 /usr/\*(SD/sendmail.
-On BSD4.4 systems it will also format and install man pages.
+On 4.4BSD systems it will also format and install man pages.
 .sh 2 "Configuration Files"
 .pp
 .i Sendmail
 .sh 2 "Configuration Files"
 .pp
 .i Sendmail
@@ -323,7 +324,7 @@ I haven't tested these yet on an isolated LAN environment
 with a single UUCP connection to the outside world.
 If you are in such an environment,
 please send comments to
 with a single UUCP connection to the outside world.
 If you are in such an environment,
 please send comments to
-sendmail@okeeffe.CS.Berkeley.EDU.
+sendmail@CS.Berkeley.EDU.
 .pp
 Our configuration files are processed by
 .i m4
 .pp
 Our configuration files are processed by
 .i m4
@@ -331,7 +332,7 @@ to facilitate local customization;
 the directory
 .i cf
 of the
 the directory
 .i cf
 of the
-sendmail
+.i sendmail
 distribution directory
 contains the source files.
 This directory contains several subdirectories:
 distribution directory
 contains the source files.
 This directory contains several subdirectories:
@@ -382,7 +383,9 @@ These are referenced using the
 macro.
 An example feature is
 use_cw_file
 macro.
 An example feature is
 use_cw_file
-(which tells sendmail to read an /etc/sendmail.cw file on startup
+(which tells
+.i sendmail
+to read an /etc/sendmail.cw file on startup
 to find the set of local names).
 .ip hack
 Local hacks, referenced using the
 to find the set of local names).
 .ip hack
 Local hacks, referenced using the
@@ -487,11 +490,13 @@ file.
 .pp
 This subsection describes the files that
 comprise the
 .pp
 This subsection describes the files that
 comprise the
-sendmail
+.i sendmail
 installation.
 .sh 3 "/usr/\*(SD/sendmail"
 .pp
 installation.
 .sh 3 "/usr/\*(SD/sendmail"
 .pp
-The binary for sendmail is located in /usr/\*(SD\**.
+The binary for
+.i sendmail
+is located in /usr/\*(SD\**.
 .(f
 \**This is usually
 /usr/sbin
 .(f
 \**This is usually
 /usr/sbin
@@ -515,13 +520,14 @@ and permissions are
 .)f
 .sh 3 "/etc/sendmail.cf"
 .pp
 .)f
 .sh 3 "/etc/sendmail.cf"
 .pp
-This is the configuration file for sendmail.
-This and the frozen configuration file
-are the only two non-library file names compiled into sendmail\**.
+This is the configuration file for
+.i sendmail .
+This is the only non-library file name compiled into
+.i sendmail \**.
 .(f
 \**The system libraries can reference other files;
 in particular, system library subroutines that
 .(f
 \**The system libraries can reference other files;
 in particular, system library subroutines that
-sendmail
+.i sendmail
 calls probably reference
 .i /etc/passwd
 and
 calls probably reference
 .i /etc/passwd
 and
@@ -540,7 +546,7 @@ If you have a particularly unusual system configuration
 you may need to create a special version.
 The format of this file is detailed in later sections
 of this document.
 you may need to create a special version.
 The format of this file is detailed in later sections
 of this document.
-.sh 3 "/usr/ucb/newaliases"
+.sh 3 "/usr/\*(SB/newaliases"
 .pp
 If you are running delivermail,
 it is critical that the
 .pp
 If you are running delivermail,
 it is critical that the
@@ -549,8 +555,8 @@ command be replaced.
 This can just be a link to
 .i sendmail :
 .(b
 This can just be a link to
 .i sendmail :
 .(b
-rm \-f /usr/ucb/newaliases
-ln /usr/\*(SD/sendmail /usr/ucb/newaliases
+rm \-f /usr/\*(SB/newaliases
+ln /usr/\*(SD/sendmail /usr/\*(SB/newaliases
 .)b
 This can be installed in whatever search path you prefer
 for your system.
 .)b
 This can be installed in whatever search path you prefer
 for your system.
@@ -616,24 +622,11 @@ is defined in the
 option of the
 .i sendmail.cf
 file.
 option of the
 .i sendmail.cf
 file.
-.sh 3 "/etc/sendmail.fc"
-.pp
-If you intend to install the frozen version of the configuration file
-(for quick startup)
-you should create the file /etc/sendmail.fc
-and initialize it.
-This step may be safely skipped.
-.(b
-cp /dev/null /etc/sendmail.fc
-chmod 644 /etc/sendmail.fc
-/usr/\*(SD/sendmail \-bz
-.)b
-In general, freeze files are not worth doing
-unless your disks are much faster than your CPU;
-this is seldom true any more.
 .sh 3 "/etc/rc"
 .pp
 .sh 3 "/etc/rc"
 .pp
-It will be necessary to start up the sendmail daemon when your system reboots.
+It will be necessary to start up the
+.i sendmail
+daemon when your system reboots.
 This daemon performs two functions:
 it listens on the SMTP socket for connections
 (to receive mail from a remote system)
 This daemon performs two functions:
 it listens on the SMTP socket for connections
 (to receive mail from a remote system)
@@ -669,6 +662,52 @@ and
 .q \-q30m
 causes it to run the queue every half hour.
 .pp
 .q \-q30m
 causes it to run the queue every half hour.
 .pp
+Some people use a more complex startup script,
+removing zero length qf files and df files for which there is no qf file.
+For example:
+.(b
+# remove zero length qf files
+for qffile in qf*
+do
+       if [ \-r $qffile ]
+       then
+               if [ ! \-s $qffile ]
+               then
+                       echo \-n " <zero: $qffile>" > /dev/console
+                       rm \-f $qffile
+               fi
+       fi
+done
+# rename tf files to be qf if the qf does not exist
+for tffile in tf*
+do
+       qffile=`echo $tffile | sed 's/t/q/'`
+       if [ \-r $tffile \-a ! \-f $qffile ]
+       then
+               echo \-n " <recovering: $tffile>" > /dev/console
+               mv $tffile $qffile
+       else
+               echo \-n " <extra: $tffile>" > /dev/console
+               rm \-f $tffile
+       fi
+done
+# remove df files with no corresponding qf files
+for dffile in df*
+do
+       qffile=`echo $dffile | sed 's/d/q/'`
+       if [ \-r $dffile \-a ! \-f $qffile ]
+       then
+               echo \-n " <incomplete: $dffile>" > /dev/console
+               mv $dffile `echo $dffile | sed 's/d/D/'`
+       fi
+done
+# announce files that have been saved during disaster recovery
+for xffile in [A-Z]f*
+do
+       echo \-n " <panic: $xffile>" > /dev/console
+done
+.)b
+.pp
 If you are not running a version of UNIX
 that supports Berkeley TCP/IP,
 do not include the
 If you are not running a version of UNIX
 that supports Berkeley TCP/IP,
 do not include the
@@ -709,7 +748,7 @@ is defined in the
 option of the
 .i sendmail.cf
 file.
 option of the
 .i sendmail.cf
 file.
-.sh 3 "/usr/ucb/newaliases"
+.sh 3 "/usr/\*(SB/newaliases"
 .pp
 If
 .i sendmail
 .pp
 If
 .i sendmail
@@ -721,7 +760,7 @@ flag
 (i.e., will rebuild the alias database;
 see below).
 This should be a link to /usr/\*(SD/sendmail.
 (i.e., will rebuild the alias database;
 see below).
 This should be a link to /usr/\*(SD/sendmail.
-.sh 3 "/usr/ucb/mailq"
+.sh 3 "/usr/\*(SB/mailq"
 .pp
 If
 .i sendmail
 .pp
 If
 .i sendmail
@@ -736,46 +775,6 @@ will print the contents of the mail queue;
 see below).
 This should be a link to /usr/\*(SD/sendmail.
 .sh 1 "NORMAL OPERATIONS"
 see below).
 This should be a link to /usr/\*(SD/sendmail.
 .sh 1 "NORMAL OPERATIONS"
-.sh 2 "``Quick'' Configuration Startup"
-.pp
-if the
-.sm FROZENCONFIG
-option is included during compilation,
-a precompiled (``frozen'') version of the configuration file
-can be created using the
-.b \-bz
-flag.
-This is really only worthwhile doing
-if you are on a slow processor with a relatively fast I/O system
-(a VAX 11/750 is a good example).
-Since it creates other problems,
-I recommend against using the frozen configuration
-on most current architectures.
-.pp
-To create the freeze file, use
-.(b
-/usr/\*(SD/sendmail \-bz
-.)b
-This creates the frozen configuration file
-.i /etc/sendmail.fc .
-This file is an image of
-.i sendmail 's
-data space after reading in the configuration file.
-If this file exists,
-it is used instead of
-.i /etc/sendmail.cf
-.i sendmail.fc
-must be rebuilt manually every time
-.i sendmail.cf
-is changed.
-.pp
-The frozen configuration file will be ignored
-if a
-.b \-C
-flag is specified
-or if sendmail detects that it is out of date.
-However, the heuristics are not strong
-so this should not be trusted.
 .sh 2 "The System Log"
 .pp
 The system log is supported by the
 .sh 2 "The System Log"
 .pp
 The system log is supported by the
@@ -822,7 +821,9 @@ However, you may find that manual intervention is sometimes necessary.
 For example,
 if a major host is down for a period of time
 the queue may become clogged.
 For example,
 if a major host is down for a period of time
 the queue may become clogged.
-Although sendmail ought to recover gracefully when the host comes up,
+Although
+.i sendmail
+ought to recover gracefully when the host comes up,
 you may find performance unacceptably bad in the meantime.
 .sh 3 "Printing the queue"
 .pp
 you may find performance unacceptably bad in the meantime.
 .sh 3 "Printing the queue"
 .pp
@@ -832,7 +833,8 @@ using the
 command
 (or by specifying the
 .b \-bp
 command
 (or by specifying the
 .b \-bp
-flag to sendmail):
+flag to
+.i sendmail ):
 .(b
 mailq
 .)b
 .(b
 mailq
 .)b
@@ -950,9 +952,32 @@ This is the form that
 .i sendmail
 actually uses to resolve aliases.
 This technique is used to improve performance.
 .i sendmail
 actually uses to resolve aliases.
 This technique is used to improve performance.
+.pp
+You can also use
+.sm NIS -based
+alias files.
+For example, the specification:
+.(b
+OA/etc/aliases
+OAnis:mail.aliases@my.nis.domain
+.)b
+will first search the /etc/aliases file
+and then the map named
+.q mail.aliases
+in
+.q my.nis.domain .
+.pp
+Additional flags can be added after the colon
+exactly like a
+.b K
+line \(em for example:
+.(b
+OAnis:-N mail.aliases@my.nis.domain
+.)b
+will search the appropriate NIS map and always include null bytes in the key.
 .sh 3 "Rebuilding the alias database"
 .pp
 .sh 3 "Rebuilding the alias database"
 .pp
-The DBM version of the database
+The DB or DBM version of the database
 may be rebuilt explicitly by executing the command
 .(b
 newaliases
 may be rebuilt explicitly by executing the command
 .(b
 newaliases
@@ -980,6 +1005,12 @@ if it might take more than five minutes
 to rebuild the database,
 there is a chance that several processes will start the rebuild process
 simultaneously.
 to rebuild the database,
 there is a chance that several processes will start the rebuild process
 simultaneously.
+.pp
+If you have multiple aliases databases specified,
+the
+.b \-bi
+flag rebuilds all the database types it understands
+(for example, it can rebuild dbm databases but not nis databases).
 .sh 3 "Potential problems"
 .pp
 There are a number of problems that can occur
 .sh 3 "Potential problems"
 .pp
 There are a number of problems that can occur
@@ -1006,7 +1037,9 @@ it adds an alias of the form
 @: @
 .)b
 (which is not normally legal).
 @: @
 .)b
 (which is not normally legal).
-Before sendmail will access the database,
+Before
+.i sendmail
+will access the database,
 it checks to insure that this entry exists\**.
 .(f
 \**The
 it checks to insure that this entry exists\**.
 .(f
 \**The
@@ -1056,7 +1089,7 @@ For this reason, and to obey Internet conventions,
 a typical scheme would be:
 .(b
 list:  some, set, of, addresses
 a typical scheme would be:
 .(b
 list:  some, set, of, addresses
-list-request:  list, administrators
+list-request:  list-admin-1, list-admin-2, ...
 owner-list:    list-request
 .)b
 .sh 2 "User Information Database"
 owner-list:    list-request
 .)b
 .sh 2 "User Information Database"
@@ -1128,8 +1161,7 @@ flag (local delivery) set in the mailer descriptor.
 .pp
 If errors occur anywhere during processing,
 this header will cause error messages to go to
 .pp
 If errors occur anywhere during processing,
 this header will cause error messages to go to
-the listed addresses
-rather than to the sender.
+the listed addresses.
 This is intended for mailing lists.
 .pp
 The Errors-To: header was created in the bad old days
 This is intended for mailing lists.
 .pp
 The Errors-To: header was created in the bad old days
@@ -1137,6 +1169,9 @@ when UUCP didn't understand the distinction between an envelope and a header;
 this was a hack to provide what should now be passed
 as the envelope sender address.
 It should go away.
 this was a hack to provide what should now be passed
 as the envelope sender address.
 It should go away.
+It is only used if the
+.b l
+option is set.
 .sh 3 "Apparently-To:"
 .pp
 If a message comes in with no recipients listed in the message
 .sh 3 "Apparently-To:"
 .pp
 If a message comes in with no recipients listed in the message
@@ -1150,6 +1185,50 @@ This is not put in as a standard recipient line
 to warn any recipients that the list is not complete.
 .pp
 At least one recipient line is required under RFC 822.
 to warn any recipients that the list is not complete.
 .pp
 At least one recipient line is required under RFC 822.
+.sh 2 "IDENT Protocol Support"
+.pp
+.i Sendmail
+supports the IDENT protocol as defined in RFC 1413.
+Although this enhances identification
+of the author of an email message
+by doing a ``call back'' to the originating system to include
+the owner of a particular TCP connection
+in the audit trail
+it is in no sense perfect;
+a determined forger can easily spoof the IDENT protocol.
+The following description is excerpted from RFC 1413:
+.ba +5
+.lp
+6.  Security Considerations
+.lp
+The information returned by this protocol is at most as trustworthy
+as the host providing it OR the organization operating the host.  For
+example, a PC in an open lab has few if any controls on it to prevent
+a user from having this protocol return any identifier the user
+wants.  Likewise, if the host has been compromised the information
+returned may be completely erroneous and misleading.
+.lp
+The Identification Protocol is not intended as an authorization or
+access control protocol.  At best, it provides some additional
+auditing information with respect to TCP connections.  At worst, it
+can provide misleading, incorrect, or maliciously incorrect
+information.
+.lp
+The use of the information returned by this protocol for other than
+auditing is strongly discouraged.  Specifically, using Identification
+Protocol information to make access control decisions - either as the
+primary method (i.e., no other checks) or as an adjunct to other
+methods may result in a weakening of normal host security.
+.lp
+An Identification server may reveal information about users,
+entities, objects or processes which might normally be considered
+private.  An Identification server provides service which is a rough
+analog of the CallerID services provided by some phone companies and
+many of the same privacy considerations and arguments that apply to
+the CallerID service apply to Identification.  If you wouldn't run a
+"finger" server due to privacy considerations you may not want to run
+this protocol.
+.ba
 .sh 1 "ARGUMENTS"
 .pp
 The complete list of arguments to
 .sh 1 "ARGUMENTS"
 .pp
 The complete list of arguments to
@@ -1295,6 +1374,30 @@ for this run only.
 Some options have security implications.
 Sendmail allows you to set these,
 but refuses to run as root thereafter.
 Some options have security implications.
 Sendmail allows you to set these,
 but refuses to run as root thereafter.
+.sh 2 "Logging Traffic"
+.pp
+Many SMTP implementations do not fully implement the protocol.
+For example, some personal computer based SMTPs
+do not understand continuation lines in reply codes.
+These can be very hard to trace.
+If you suspect such a problem, you can set traffic logging using the
+.b \-X
+flag.
+For example,
+.(b
+/usr/\*(SD/sendmail \-X /tmp/traffic -bd
+.)b
+will log all traffic in the file
+.i /tmp/traffic .
+.pp
+This logs a lot of data very quickly and should never be used
+during normal operations.
+After starting up such a daemon,
+force the errant implementation to send a message to your host.
+All message traffic in and out of
+.i sendmail ,
+including the incoming SMTP traffic,
+will be logged in this file.
 .sh 1 "TUNING"
 .pp
 There are a number of configuration parameters
 .sh 1 "TUNING"
 .pp
 There are a number of configuration parameters
@@ -1409,6 +1512,9 @@ such as NOOP (no-operation) and VERB (go into verbose mode).
 In server SMTP,
 the time to wait for another command.
 [1h, 5m].
 In server SMTP,
 the time to wait for another command.
 [1h, 5m].
+.ip ident
+The timeout waiting for a reply to an IDENT query
+[30s, unspecified].
 .lp
 For compatibility with old configuration files,
 if no ``keyword='' is specified,
 .lp
 For compatibility with old configuration files,
 if no ``keyword='' is specified,
@@ -1478,6 +1584,20 @@ This allows a recipient to fix the problem even if it occurs
 at the beginning of a long weekend.
 RFC 1123 section 5.3.1.1 says that this parameter
 should be ``at least 4\-5 days''.
 at the beginning of a long weekend.
 RFC 1123 section 5.3.1.1 says that this parameter
 should be ``at least 4\-5 days''.
+.pp
+The
+.b T
+option can also take a second timeout indicating a time after which
+a warning message should be sent;
+the two timeouts are separated by a slash.
+For example, the value
+.(b
+5d/4h
+.)b
+causes email to fail after five days,
+but a warning message will be sent after four hours.
+This should be large enough that the message will have been tried
+several times.
 .sh 2 "Forking During Queue Runs"
 .pp
 By setting the
 .sh 2 "Forking During Queue Runs"
 .pp
 By setting the
@@ -1596,7 +1716,9 @@ priority points
 For drastic cases,
 the
 .b X
 For drastic cases,
 the
 .b X
-option defines a load average at which sendmail will refuse
+option defines a load average at which
+.i sendmail
+will refuse
 to accept network connections.
 Locally generated mail
 (including incoming UUCP mail)
 to accept network connections.
 Locally generated mail
 (including incoming UUCP mail)
@@ -1642,7 +1764,8 @@ upon initial receipt of the mail.
 This speeds up the response to RCPT commands.
 .sh 2 "Log Level"
 .pp
 This speeds up the response to RCPT commands.
 .sh 2 "Log Level"
 .pp
-The level of logging can be set for sendmail.
+The level of logging can be set for
+.i sendmail .
 The default using a standard configuration table is level 9.
 The levels are as follows:
 .nr ii 0.5i
 The default using a standard configuration table is level 9.
 The levels are as follows:
 .nr ii 0.5i
@@ -1776,7 +1899,7 @@ any intended changes will also be ignored or forgotten.
 .sh 2 "Connection Caching"
 .pp
 When processing the queue,
 .sh 2 "Connection Caching"
 .pp
 When processing the queue,
-.b sendmail
+.i sendmail
 will try to keep the last few open connections open
 to avoid startup and shutdown costs.
 This only applies to IPC connections.
 will try to keep the last few open connections open
 to avoid startup and shutdown costs.
 This only applies to IPC connections.
@@ -1800,7 +1923,7 @@ connections will be closed as quickly as possible.
 The default is one.
 This should be set as appropriate for your system size;
 it will limit the amount of system resources that
 The default is one.
 This should be set as appropriate for your system size;
 it will limit the amount of system resources that
-.b sendmail
+.i sendmail
 will use during queue runs.
 .pp
 The
 will use during queue runs.
 .pp
 The
@@ -1819,20 +1942,29 @@ The default is five minutes.
 If your system supports the name server,
 then the probability is that
 .i sendmail
 If your system supports the name server,
 then the probability is that
 .i sendmail
-will be using it regardless of how you configure sendmail.
-However, if you have nameserver support
-which you are not using,
-sendmail will get a
+will be using it regardless of how you configure
+.i sendmail .
+In particular, the system routine
+.i gethostbyname (3)
+is used to look up host names,
+and most vendor versions try some combination of DNS, NIS,
+and file lookup in /etc/hosts.
+.pp
+However, if you do not have a nameserver configured at all,
+such as at a UUCP-only site,
+.i sendmail
+will get a
 .q "connection refused"
 message when it tries to connect to the name server
 .q "connection refused"
 message when it tries to connect to the name server
-(either by calling
+(either indirectly by calling
 .i gethostbyname
 .i gethostbyname
-or by trying to look up the MX records).
+or directly by looking up MX records).
 If the
 .b I
 option is set,
 .i sendmail
 If the
 .b I
 option is set,
 .i sendmail
-will interpret this to mean a temporary failure;
+will interpret this to mean a temporary failure
+and will queue the mail for later processing;
 otherwise, it ignores the name server data.
 If your name server is running properly,
 the setting of this option is not relevant;
 otherwise, it ignores the name server data.
 If your name server is running properly,
 the setting of this option is not relevant;
@@ -1855,13 +1987,14 @@ and turns off the DNSRCH (search the domain path) options.
 Most resolver libraries default DNSRCH, DEFNAMES, and RECURSE
 flags on and all others off.
 Note the use of the initial ``True'' \*-
 Most resolver libraries default DNSRCH, DEFNAMES, and RECURSE
 flags on and all others off.
 Note the use of the initial ``True'' \*-
-this is for compatibility with previous versions of sendmail,
+this is for compatibility with previous versions of
+.i sendmail ,
 but is not otherwise necessary.
 .pp
 Version level 1 configurations
 turn DNSRCH and DEFNAMES off when doing delivery lookups,
 but leave them on everywhere else.
 but is not otherwise necessary.
 .pp
 Version level 1 configurations
 turn DNSRCH and DEFNAMES off when doing delivery lookups,
 but leave them on everywhere else.
-Version 6 of
+Version 8 of
 .i sendmail
 ignores them when doing canonification lookups
 (that is, when using $[ ... $]),
 .i sendmail
 ignores them when doing canonification lookups
 (that is, when using $[ ... $]),
@@ -1935,6 +2068,10 @@ This invites the SMTP client to try again later.
 Beware of setting this option too high;
 it can cause rejection of email
 when that mail would be processed without difficulty.
 Beware of setting this option too high;
 it can cause rejection of email
 when that mail would be processed without difficulty.
+.pp
+This option can also specify an advertised
+.q "maximum message size"
+for hosts that speak ESMTP.
 .sh 2 "Privacy Flags"
 .pp
 The
 .sh 2 "Privacy Flags"
 .pp
 The
@@ -1951,7 +2088,7 @@ The option takes a series of flag names;
 the final privacy is the inclusive or of those flags.
 For example:
 .(b
 the final privacy is the inclusive or of those flags.
 For example:
 .(b
-Ob needmailhelo, noexpn
+Op needmailhelo, noexpn
 .)b
 insists that the HELO or EHLO command be used before a MAIL command is accepted
 and disables the EXPN command.
 .)b
 insists that the HELO or EHLO command be used before a MAIL command is accepted
 and disables the EXPN command.
@@ -1960,6 +2097,35 @@ The
 .q restrictmailq
 option restricts printing the queue to the group that owns the queue directory.
 It is absurd to set this if you don't also protect the logs.
 .q restrictmailq
 option restricts printing the queue to the group that owns the queue directory.
 It is absurd to set this if you don't also protect the logs.
+.pp
+The
+.q restrictqrun
+option restricts people running the queue
+(that is, using the
+.b \-q
+command line flag)
+to root and the owner of the queue directory.
+.sh 2 "Send to Me Too"
+.pp
+Normally,
+.i sendmail
+deletes the (envelope) sender from any list expansions.
+For example, if
+.q matt
+sends to a list that contains
+.q matt
+as one of the members he won't get a copy of the message.
+If the
+.b \-m
+(me too)
+command line flag, or if the
+.b m
+option is set in the configuration file,
+this behaviour is supressed.
+Some sites like to run the
+.sm SMTP
+daemon with
+.b \-m .
 .sh 1 "THE WHOLE SCOOP ON THE CONFIGURATION FILE"
 .pp
 This section describes the configuration file
 .sh 1 "THE WHOLE SCOOP ON THE CONFIGURATION FILE"
 .pp
 This section describes the configuration file
@@ -2045,6 +2211,19 @@ the input is rewritten to the
 The
 .i comments
 are ignored.
 The
 .i comments
 are ignored.
+.pp
+Macro expansions of the form
+.b $ \c
+.i x
+are performed when the configuration file is read.
+Expansions of the form
+.b $& \c
+.i x
+are performed at run time using a somewhat less general algorithm.
+This for is intended only for referencing internally defined macros
+such as
+.b $h
+that are changed at runtime.
 .sh 4 "The left hand side"
 .pp
 The left hand side of rewriting rules contains a pattern.
 .sh 4 "The left hand side"
 .pp
 The left hand side of rewriting rules contains a pattern.
@@ -2056,8 +2235,8 @@ The metasymbols are:
 \fB$*\fP       Match zero or more tokens
 \fB$+\fP       Match one or more tokens
 \fB$\-\fP      Match exactly one token
 \fB$*\fP       Match zero or more tokens
 \fB$+\fP       Match one or more tokens
 \fB$\-\fP      Match exactly one token
-\fB$=\fP\fIx\fP        Match any token in class \fIx\fP
-\fB$~\fP\fIx\fP        Match any token not in class \fIx\fP
+\fB$=\fP\fIx\fP        Match any phrase in class \fIx\fP
+\fB$~\fP\fIx\fP        Match any word not in class \fIx\fP
 .)b
 If any of these match,
 they are assigned to the symbol
 .)b
 If any of these match,
 they are assigned to the symbol
@@ -2181,9 +2360,12 @@ The
 .b $#
 syntax should
 .i only
 .b $#
 syntax should
 .i only
-be used in ruleset zero.
+be used in ruleset zero
+or a subroutine of ruleset zero.
 It causes evaluation of the ruleset to terminate immediately,
 It causes evaluation of the ruleset to terminate immediately,
-and signals to sendmail that the address has completely resolved.
+and signals to
+.i sendmail
+that the address has completely resolved.
 The complete syntax is:
 .(b
 \fB$#\fP\fImailer\fP \fB$@\fP\fIhost\fP \fB$:\fP\fIuser\fP
 The complete syntax is:
 .(b
 \fB$#\fP\fImailer\fP \fB$@\fP\fIhost\fP \fB$:\fP\fIuser\fP
@@ -2205,12 +2387,20 @@ and is passed to the local mailer for local use.
 .)f
 The
 .i mailer
 .)f
 The
 .i mailer
-and
-.i host
 must be a single word,
 but the
 must be a single word,
 but the
+.i host
+and
 .i user
 may be multi-part.
 .i user
 may be multi-part.
+If the
+.i mailer
+is the builtin IPC mailer,
+the
+.i host
+may be a colon-separated list of hosts
+that are searched in order for the first working address
+(exactly like MX records).
 .pp
 A RHS may also be preceded by a
 .b $@
 .pp
 A RHS may also be preceded by a
 .b $@
@@ -2345,7 +2535,8 @@ corresponding to the
 .i sending
 mailer).
 Ruleset three
 .i sending
 mailer).
 Ruleset three
-is applied by sendmail
+is applied by
+.i sendmail
 before doing anything with any address.
 .pp
 Ruleset zero
 before doing anything with any address.
 .pp
 Ruleset zero
@@ -2378,7 +2569,12 @@ to translate internal to external form.
 .sh 4 "IPC mailers"
 .pp
 Some special processing occurs
 .sh 4 "IPC mailers"
 .pp
 Some special processing occurs
-if the ruleset zero resolves to an IPC mailer.
+if the ruleset zero resolves to an IPC mailer
+(that is, a mailer that has
+.q [IPC]
+listed as the Path in the
+.b M
+configuration line.
 The host name passed after
 .q $@
 has MX expansion performed;
 The host name passed after
 .q $@
 has MX expansion performed;
@@ -2392,6 +2588,16 @@ for example:
 This causes direct conversion of the numeric value
 to a TCP/IP host address.
 .pp
 This causes direct conversion of the numeric value
 to a TCP/IP host address.
 .pp
+The host name passed in after the
+.q $@
+may also be a colon-separated list of hosts.
+Each is separately MX expanded and the results are concatenated
+to make (essentially) one long MX list.
+The intent here is to create
+.q fake
+MX records that are not published in DNS
+for private internal networks.
+.pp
 As a final special case, the host name can be passed in
 as a text string
 in square brackets:
 As a final special case, the host name can be passed in
 as a text string
 in square brackets:
@@ -2435,12 +2641,16 @@ using the construct
 where
 .i x
 is the name of the macro to be interpolated.
 where
 .i x
 is the name of the macro to be interpolated.
-In particular,
-lower case letters are reserved to have
-special semantics,
-used to pass information in or out of sendmail,
-and some special characters are reserved to
-provide conditionals, etc.
+This interpolation is done when the configuration file is read,
+except in
+.b M
+lines.
+The special construct
+.b $& \c
+.i x
+can be used in
+.b R
+lines to get deferred interpolation.
 .pp
 Conditionals can be specified using the syntax:
 .(b
 .pp
 Conditionals can be specified using the syntax:
 .(b
@@ -2460,38 +2670,89 @@ The
 .b $| )
 clause may be omitted.
 .pp
 .b $| )
 clause may be omitted.
 .pp
-The following macros
-.i must
-be defined to transmit information into
-.i sendmail:
-.(b
-.ta 4n
-e      The SMTP entry message
-j      The \*(lqofficial\*(rq domain name for this site
-l      The format of the UNIX from line
-n      The name of the daemon (for error messages)
-o      The set of "operators" in addresses
-q      default format of sender address
-.)b
-The
-.b $e
-macro is printed out when SMTP starts up.
+Lower case macro names are reserved to have
+special semantics,
+used to pass information in or out of
+.i sendmail ,
+and special characters are reserved to
+provide conditionals, etc.
+Upper case names
+(that is,
+.b $A
+through
+.b $Z )
+are specifically reserved for configuration file authors.
+.pp
+The following macros are defined and/or used internally by
+.i sendmail
+for interpolation into argv's for mailers
+or for other contexts.
+The ones marked \(dg are information passed into sendmail\**,
+.(f
+\**As of version 8.6,
+all of these macros have reasonable defaults.
+Previous versions required that they be defined.
+.)f
+the ones marked \(dd are information passed both in and out of sendmail,
+and the unmarked macros are passed out of sendmail
+but are not otherwise used internally.
+These macros are:
+.nr ii 5n
+.ip $a
+.b "The origination date in RFC 822 format."
+.ip $b
+.b "The current date in RFC 822 format."
+.ip $c
+.b "The hop count."
+.ip $d
+.b "The current date in UNIX (ctime) format."
+.ip $e\(dg
+.b "The SMTP entry message."
+This is printed out when SMTP starts up.
 The first word must be the
 .b $j
 The first word must be the
 .b $j
-macro.
-The
+macro as specified by RFC821.
+Defaults to
+.q "$j Sendmail $v ready at $b" .
+Commonly redefined to include the configuration version number, e.g.,
+.q "$j Sendmail $v/$Z ready at $b"
+.ip $f
+.b "The sender (from) address."
+.ip $g
+.b "The sender address relative to the recipient."
+.ip $h
+.b "The recipient host."
+.ip $i
+.b "The queue id."
+.ip $j\(dd
+.b "The \*(lqofficial\*(rq domain name for this site."
+This is fully qualified if the full qualification can be found.
+It
+.i must
+be redefined to be the fully qualified domain name
+if your system is not configured so that information can find
+it automatically.
+.ip $k
+.b "The UUCP node name (from the uname system call)."
+.ip $l\(dg
+.b "The format of the UNIX from line."
+Unless you have changed the UNIX mailbox format,
+you should not change the default,
+which is
+.q "From $g  $d" .
+.ip $m
+.b "The domain part of the \fIgethostname\fP return value."
+Under normal circumstances,
 .b $j
 .b $j
-macro
-should be in RFC821 format.
-The
-.b $l
-and
-.b $n
-macros can be considered constants
-except under terribly unusual circumstances.
-The
-.b $o
-macro consists of a list of characters
+is equivalent to
+.b $w.$m .
+.ip $n\(dg
+.b "The name of the daemon (for error messages)."
+Defaults to
+.q MAILER-DAEMON .
+.ip $o\(dg
+.b "The set of "operators" in addresses."
+A list of characters
 which will be considered tokens
 and which will separate tokens
 when doing parsing.
 which will be considered tokens
 and which will separate tokens
 when doing parsing.
@@ -2506,24 +2767,27 @@ would be scanned as three tokens:
 .q @,
 and
 .q b.
 .q @,
 and
 .q b.
-Finally, the
+Defaults to
+.q ".:@[]" ,
+which is the minimum set necessary to do RFC 822 parsing;
+a richer set of operators is
+.q ".:%@!/[]" ,
+which adds support for UUCP, the %-hack, and X.400 addresses.
+.ip $p
+.b "Sendmail's process id."
+.ip $q\(dg
+.b "Default format of sender address."
+The
 .b $q
 macro specifies how an address should appear in a message
 when it is defaulted.
 .b $q
 macro specifies how an address should appear in a message
 when it is defaulted.
-For example, on our system these definitions are:
-.(b
-De$j Sendmail $v/$Z ready at $b
-DnMAILER-DAEMON
-DlFrom $g  $d
-Do.:%@!^/[]
-Dq$?x$x <$g>$|$g$.
-Dj$w
-.)b
-An acceptable alternative for the
-.b $q
-macro is
-.q "$g$?x ($x)$." .
-These correspond to the following two formats:
+Defaults to
+.q "<$g>" .
+It is commonly redefined to be
+.q "$?x$x <$g>$|$g$."
+or
+.q "$g$?x ($x)$." ,
+corresponding to the following two formats:
 .(b
 Eric Allman <eric@CS.Berkeley.EDU>
 eric@CS.Berkeley.EDU (Eric Allman)
 .(b
 Eric Allman <eric@CS.Berkeley.EDU>
 eric@CS.Berkeley.EDU (Eric Allman)
@@ -2531,34 +2795,28 @@ eric@CS.Berkeley.EDU (Eric Allman)
 .i Sendmail
 properly quotes names that have special characters
 if the first form is used.
 .i Sendmail
 properly quotes names that have special characters
 if the first form is used.
+.ip $r
+.b "Protocol used to receive the message."
+.ip $s
+.b "Sender's host name."
+.ip $t
+.b "A numeric representation of the current time."
+.ip $u
+.b "The recipient user."
+.ip $v
+.b "The version number of \fIsendmail\fP."
+.ip $w\(dd
+.b "The hostname of this site."
 .pp
 .pp
-Some macros are defined by
-.i sendmail
-for interpolation into argv's for mailers
-or for other contexts.
-These macros are:
-.(b
-a      The origination date in RFC 822 format
-b      The current date in RFC 822 format
-c      The hop count
-d      The date in UNIX (ctime) format
-f      The sender (from) address
-g      The sender address relative to the recipient
-h      The recipient host
-i      The queue id
-k      The UUCP node name (from the uname system call)
-m      The domain part of the \fIgethostname\fP return value
-p      Sendmail's pid
-r      Protocol used to receive the message
-s      Sender's host name
-t      A numeric representation of the current time
-u      The recipient user
-v      The version number of sendmail
-w      The hostname of this site
-x      The full name of the sender
-z      The home directory of the recipient
-<      The return-path (sender in envelope) relative to recipient
-.)b
+The
+.b $w
+macro is set to the root name of this host (but see below for caveats).
+.ip $x
+.b "The full name of the sender."
+.ip $z
+.b "The home directory of the recipient."
+.ip $_
+.b "The validated sender address."
 .pp
 There are three types of dates that can be used.
 The
 .pp
 There are three types of dates that can be used.
 The
@@ -2588,6 +2846,59 @@ macro in UNIX
 (ctime)
 format.
 .pp
 (ctime)
 format.
 .pp
+The macros
+.b $w ,
+.b $j ,
+and
+.b $m
+are set to the identity of this host.
+.i Sendmail
+tries to find the fully qualified name of the host
+if at all possible;
+it does this by calling
+.i gethostname (2)
+to get the current hostname
+and then passing that to
+.i gethostbyname (3)
+which is supposed to return the canonical version of that host name.\**
+.(f
+\**For example, on some systems
+.i gethostname
+might return
+.q foo
+which would be mapped to
+.q foo.bar.com
+by
+.i gethostbyname .
+.)f
+Assuming this is successful,
+.b $j
+is set to the fully qualified name
+and
+.b $m
+is set to the domain part of the name
+(everything after the first dot).
+The
+.b $w
+macro is set to the first word
+(everything before the first dot)
+if you have a level 5 or higher configuration file;
+otherwise, it is set to the same value as
+.b $j .
+If the canonification is not successful,
+it is imperative that the config file set
+.b $j
+to the fully qualified domain name\**.
+.(f
+\**Older versions of sendmail didn't pre-define
+.b $j
+at all, so up until 8.6,
+config files
+.i always
+had to define
+.b $j .
+.)f
+.pp
 The
 .b $f
 macro is the id of the sender
 The
 .b $f
 macro is the id of the sender
@@ -2617,7 +2928,7 @@ The
 macro is set to the full name of the sender.
 This can be determined in several ways.
 It can be passed as flag to
 macro is set to the full name of the sender.
 This can be determined in several ways.
 It can be passed as flag to
-.i sendmail.
+.i sendmail .
 The second choice is the value of the
 .q Full-name:
 line in the header if it exists,
 The second choice is the value of the
 .q Full-name:
 line in the header if it exists,
@@ -2665,10 +2976,7 @@ macro is set to be the version number of
 .i sendmail ;
 this is normally put in timestamps
 and has been proven extremely useful for debugging.
 .i sendmail ;
 this is normally put in timestamps
 and has been proven extremely useful for debugging.
-The
-.b $w
-macro is set to the name of this host
-if it can be determined.
+.pp
 The
 .b $c
 field is set to the
 The
 .b $c
 field is set to the
@@ -2684,16 +2992,22 @@ The
 .b $r
 and
 .b $s
 .b $r
 and
 .b $s
-fields are set to the protocol used to communicate with sendmail
+fields are set to the protocol used to communicate with
+.i sendmail
 and the sending hostname.
 and the sending hostname.
+.pp
+The
+.b $_
+is set to a validated sender host name.
+If the sender is running an RFC 1413 compliant IDENT server,
+it will include the user name on that host.
 .sh 3 "C and F \*- define classes"
 .pp
 .sh 3 "C and F \*- define classes"
 .pp
-Classes of words may be defined
+Classes of phrases may be defined
 to match on the left hand side of rewriting rules,
 where a
 to match on the left hand side of rewriting rules,
 where a
-.q word
-is a sequence of characters that do not contain characters
-in the $o macro.
+.q phrase
+is a sequence of characters that do not contain space characters.
 For example
 a class of all local names for this site
 might be created
 For example
 a class of all local names for this site
 might be created
@@ -2709,8 +3023,8 @@ are reserved for system use.
 The syntax is:
 .(b F
 .b C \c
 The syntax is:
 .(b F
 .b C \c
-.i c\|word1
-.i word2...
+.i c\|phrase1
+.i phrase2...
 .br
 .b F \c
 .i c\|file
 .br
 .b F \c
 .i c\|file
@@ -2735,6 +3049,12 @@ reads the elements of the class
 from the named
 .i file .
 .pp
 from the named
 .i file .
 .pp
+The
+.b $~
+(match entries not in class)
+only matches a single word;
+multi-word entries in the class are ignored in this context.
+.pp
 The class
 .b $=w
 is set to be the set of all names
 The class
 .b $=w
 is set to be the set of all names
@@ -2776,6 +3096,7 @@ Argv      An argument vector to pass to this mailer
 Eol    The end-of-line string for this mailer
 Maxsize        The maximum message length to this mailer
 Linelimit      The maximum line length in the message body
 Eol    The end-of-line string for this mailer
 Maxsize        The maximum message length to this mailer
 Linelimit      The maximum line length in the message body
+Directory      The working directory for the mailer
 .)b
 Only the first character of the field name is checked.
 .pp
 .)b
 Only the first character of the field name is checked.
 .pp
@@ -2784,6 +3105,14 @@ Any other flags may be used freely
 to conditionally assign headers to messages
 destined for particular mailers.
 .nr ii 4n
 to conditionally assign headers to messages
 destined for particular mailers.
 .nr ii 4n
+.ip a
+Run Extended SMTP (ESMTP) protocol (defined in RFCs 1425, 1426, and 1427).
+.ip b
+Force a blank line on the end of a message.
+This is intended to work around some stupid versions of
+/bin/mail
+that require a blank line, but do not provide it themselves.
+It would not normally be used on network mail.
 .ip c
 Do not include comments in addresses.
 This should only be used if you have to work around
 .ip c
 Do not include comments in addresses.
 This should only be used if you have to work around
@@ -2837,6 +3166,27 @@ does not have special permissions).
 This mailer wants a
 .q From:
 header line.
 This mailer wants a
 .q From:
 header line.
+.ip g
+Normally,
+.i sendmail
+sends internally generated email (e.g., error messages)
+using the null return address\**
+.(f
+\**Actually, this only applies to SMTP,
+which uses the ``MAIL FROM:<>'' command.
+.)f
+as required by RFC 1123.
+However, some mailers don't accept a null return address.
+If necessary,
+you can set the
+.b g
+flag to prevent
+.i sendmail
+from obeying the standards;
+error messages will be sent as from the MAILER-DAEMON
+(actually, the value of the
+.b $n
+macro).
 .ip h
 Upper case should be preserved in host names
 for this mailer.
 .ip h
 Upper case should be preserved in host names
 for this mailer.
@@ -2945,10 +3295,11 @@ This is the default if the
 flag is set.
 Note that setting this is not
 sufficient to get full eight bit data passed through
 flag is set.
 Note that setting this is not
 sufficient to get full eight bit data passed through
-.i sendmail ;
-the
-.b 8
-option must also be set.
+.i sendmail .
+If the
+.b 7
+option is set, this is essentially always set,
+since the eighth bit was stripped on input.
 .pp
 The mailer with the special name
 .q error
 .pp
 The mailer with the special name
 .q error
@@ -2987,8 +3338,8 @@ and :include: lists respectively.
 They default to:
 .(b
 Mprog, P=/bin/sh, F=lsD, A=sh \-c $u
 They default to:
 .(b
 Mprog, P=/bin/sh, F=lsD, A=sh \-c $u
-M*file*, F=lsDEu, A=NULL
-M*include*, F=su, A=NULL
+M*file*, P=/dev/null, F=lsDFMPEu, A=FILE
+M*include*, P=/dev/null, F=su, A=INCLUDE
 .)b
 .pp
 The Sender and Recipient rewriting sets
 .)b
 .pp
 The Sender and Recipient rewriting sets
@@ -2997,9 +3348,28 @@ or may be two integers separated by a slash;
 if so, the first rewriting set is applied to envelope
 addresses
 and the second is applied to headers.
 if so, the first rewriting set is applied to envelope
 addresses
 and the second is applied to headers.
+.pp
+The Directory
+is actually a colon-separated path of directories to try.
+For example, the definition
+.q D=$z:/
+first tries to execute in the recipient's home directory;
+if that is not available,
+it tries to execute in the root of the filesystem.
+This is intended to be used only on the
+.q prog
+mailer,
+since some shells (such as
+.i csh )
+refuse to execute if they cannot read the home directory.
+Since the queue directory is not normally readable by normal users
+.i csh
+scripts as recipients can fail.
 .sh 3 "H \*- define header"
 .pp
 .sh 3 "H \*- define header"
 .pp
-The format of the header lines that sendmail inserts into the message
+The format of the header lines that
+.i sendmail
+inserts into the message
 are defined by the
 .b H
 line.
 are defined by the
 .b H
 line.
@@ -3079,15 +3449,47 @@ rebuild the database
 .b D
 option is also set)
 or issue a warning.
 .b D
 option is also set)
 or issue a warning.
-.ip A\fIfile\fP
-Use the named
-.i file
-as the alias file.
-If no file is specified,
-use
-.i aliases
-in the current directory.
-.ip b\fIN\fP
+.ip "A\fIspec, spec, ...\fP"
+Specify possible alias file(s).
+Each
+.i spec
+should be in the format
+``\c
+.i class \c
+.b :
+.i file ''
+where
+.i class \c
+.b :
+is optional and defaults to ``implicit''.
+Depending on how
+.i sendmail
+is compiled, valid classes are
+.q implicit
+(search through a compiled-in list of alias file types,
+for back compatibility),
+.q hash
+(if
+.sm NEWDB
+is specified),
+.q dbm
+(if
+.sm NDBM
+is specified),
+.q stab
+(internal symbol table \*- not normally used
+unless you have no other database lookup),
+or
+.q nis
+(if
+.sm NIS
+is specified).
+If a list of
+.i spec s
+are provided,
+.i sendmail
+searches them in order.
+.ip b\fIN\fP/\fIM\fP
 Insist on at least
 .i N
 blocks free on the filesystem that holds the queue files
 Insist on at least
 .i N
 blocks free on the filesystem that holds the queue files
@@ -3097,6 +3499,10 @@ If there is insufficient space
 gives a 452 response
 to the MAIL command.
 This invites the sender to try again later.
 gives a 452 response
 to the MAIL command.
 This invites the sender to try again later.
+The optional
+.i M
+is a maximum message size advertised in the ESMTP EHLO response.
+It is currently otherwise unused.
 .ip B\fIc\fP
 Set the blank substitution character to
 .i c .
 .ip B\fIc\fP
 Set the blank substitution character to
 .i c .
@@ -3179,6 +3585,7 @@ for mailers to run in
 to
 .i n .
 Defaults to 1.
 to
 .i n .
 Defaults to 1.
+The value can also be given as a symbolic group name.
 .ip G
 Allow fuzzy matching on the GECOS field.
 If this flag is set,
 .ip G
 Allow fuzzy matching on the GECOS field.
 If this flag is set,
@@ -3225,6 +3632,9 @@ if the name server is not available.
 Thus, you should
 .i never
 set this option if you do not run the name server.
 Thus, you should
 .i never
 set this option if you do not run the name server.
+.ip j
+If set, send error messages in MIME format
+(see RFC1341 and RFC1344 for details).
 .ip J\fIpath\fP
 Set the path for searching for users' .forward files.
 The default is
 .ip J\fIpath\fP
 Set the path for searching for users' .forward files.
 The default is
@@ -3246,7 +3656,9 @@ and then in
 The maximum number of open connections that will be cached at a time.
 The default is one.
 This delays closing the the current connection until
 The maximum number of open connections that will be cached at a time.
 The default is one.
 This delays closing the the current connection until
-either this invocation of sendmail needs to connect to another host
+either this invocation of
+.i sendmail
+needs to connect to another host
 or it terminates.
 Setting it to zero defaults to the old behavior,
 that is, connections are closed immediately.
 or it terminates.
 Setting it to zero defaults to the old behavior,
 that is, connections are closed immediately.
@@ -3257,7 +3669,7 @@ If this time is exceeded,
 the connection is immediately closed.
 This value should be small (on the order of ten minutes).
 Before
 the connection is immediately closed.
 This value should be small (on the order of ten minutes).
 Before
-.b sendmail
+.i sendmail
 uses a cached connection,
 it always sends a NOOP (no operation) command
 to check the connection;
 uses a cached connection,
 it always sends a NOOP (no operation) command
 to check the connection;
@@ -3267,6 +3679,14 @@ The point of this option is to be a good network neighbor
 and avoid using up excessive resources
 on the other end.
 The default is five minutes.
 and avoid using up excessive resources
 on the other end.
 The default is five minutes.
+.ip l
+If there is an
+.q Errors-To:
+header, send error messages to the addresses listed there.
+They normally go to the envelope sender.
+Use of this option causes
+.i sendmail
+to violate RFC 1123.
 .ip L\fIn\fP
 Set the default log level to
 .i n .
 .ip L\fIn\fP
 Set the default log level to
 .i n .
@@ -3294,6 +3714,23 @@ it will be assumed that commas already exist.
 If this flag is not on,
 only commas delimit names.
 Headers are always output with commas between the names.
 If this flag is not on,
 only commas delimit names.
 Headers are always output with commas between the names.
+.ip O\fIoptions\fP
+Set server SMTP options.
+The options are
+.i key=value
+pairs.
+Known keys are:
+.(b
+.ta 1i
+Port   Name/number of listening port (defaults to "smtp")
+Addr   Address mask (defaults INADDR_ANY)
+Family Address family (defaults to INET)
+Listen Size of listen queue (defaults to 10)
+.)b
+The
+.i Addr ess
+mask may be a numeric address in dot notation
+or a network name.
 .ip p\fI\|opt,opt,...\fP
 Set the privacy
 .i opt ions.
 .ip p\fI\|opt,opt,...\fP
 Set the privacy
 .i opt ions.
@@ -3312,15 +3749,21 @@ noexpn  Disallow EXPN entirely
 needvrfyhelo   Insist on HELO or EHLO command before VRFY
 novrfy Disallow VRFY entirely
 restrictmailq  Restrict mailq command
 needvrfyhelo   Insist on HELO or EHLO command before VRFY
 novrfy Disallow VRFY entirely
 restrictmailq  Restrict mailq command
+restrictqrun   Restrict \-q command line flag
 goaway Disallow essentially all SMTP status queries
 .)b
 The
 .q goaway
 pseudo-flag sets all flags except
 goaway Disallow essentially all SMTP status queries
 .)b
 The
 .q goaway
 pseudo-flag sets all flags except
-.q restrictmailq .
+.q restrictmailq
+and
+.q restrictqrun .
 If mailq is restricted,
 only people in the same group as the queue directory
 can print the queue.
 If mailq is restricted,
 only people in the same group as the queue directory
 can print the queue.
+If queue runs are restricted,
+only root and the owner of the queue directory
+can run the queue.
 .ip P\fIpostmaster\fP
 If set,
 copies of error messages will be sent to the named
 .ip P\fIpostmaster\fP
 If set,
 copies of error messages will be sent to the named
@@ -3371,6 +3814,7 @@ rset      reply to RSET command [5m, none]
 quit   reply to QUIT command [2m, none]
 misc   reply to NOOP and VERB commands [2m, none]
 command        command read [1h, 5m]
 quit   reply to QUIT command [2m, none]
 misc   reply to NOOP and VERB commands [2m, none]
 command        command read [1h, 5m]
+ident  IDENT protocol timeout [30s, none]
 .)b
 All but
 .q command
 .)b
 All but
 .q command
@@ -3378,6 +3822,27 @@ apply to client SMTP.
 For back compatibility,
 a timeout with no ``keyword='' part
 will set all of the longer values.
 For back compatibility,
 a timeout with no ``keyword='' part
 will set all of the longer values.
+.ip R
+Normally,
+.i sendmail
+tries to eliminate any unnecessary explicit routes
+when sending an error message
+(as discussed in RFC 1123 \(sc 5.2.6).
+For example,
+when sending an error message to
+.(b
+<@known1,@known2,@unknown:user@known3>
+.)b
+.i sendmail
+will strip off the
+.q @known1
+in order to make the route as direct as possible.
+However, if the
+.b R
+option is set, this will be disabled,
+and the mail will be sent to the first address in the route,
+even if later addresses are known.
+This may be useful if you are caught behind a firewall.
 .ip s
 Be super-safe when running things,
 i.e.,
 .ip s
 Be super-safe when running things,
 i.e.,
@@ -3390,20 +3855,27 @@ under any circumstances.
 .ip S\fIfile\fP
 Log statistics in the named
 .i file .
 .ip S\fIfile\fP
 Log statistics in the named
 .i file .
-.ip t\fIS,D\fP
-Set the local time zone name to
-.i S
-for standard time and
-.i D
-for daylight time;
-this is only used under version six.
-.ip T\fItime\fP
+.ip t\fItzinfo\fP
+Set the local time zone info to
+.i tzinfo
+\*- for example,
+.q PST8PDT .
+Actually, if this is not set,
+the TZ environment variable is cleared (so the system default is used);
+if set but null, the user's TZ variable is used,
+and if set and non-null the TZ variable is set to this value.
+.ip T\fIrtime/wtime\fP
 Set the queue timeout to
 Set the queue timeout to
-.i time .
+.i rtime .
 After this interval,
 messages that have not been successfully sent
 will be returned to the sender.
 After this interval,
 messages that have not been successfully sent
 will be returned to the sender.
-Defaults to three days.
+Defaults to five days.
+The optional
+.i wtime
+is the time after which a warning message is sent.
+If it is missing or zero
+then no warning messages are sent.
 .ip u\fIn\fP
 Set the default userid for mailers to
 .i n .
 .ip u\fIn\fP
 Set the default userid for mailers to
 .i n .
@@ -3412,6 +3884,7 @@ Mailers without the
 flag in the mailer definition
 will run as this user.
 Defaults to 1.
 flag in the mailer definition
 will run as this user.
 Defaults to 1.
+The value can also be given as a symbolic user name.
 .ip U\fIudbspec\fP
 The user database specification.
 .ip v
 .ip U\fIudbspec\fP
 The user database specification.
 .ip v
@@ -3433,6 +3906,35 @@ should
 .i never
 be set in the configuration file;
 it is intended for command line use only.
 .i never
 be set in the configuration file;
 it is intended for command line use only.
+.ip V\fIfallbackhost\fP
+If specified, the
+.i fallbackhost
+acts like a very low priority MX
+on every host.
+This is intended to be used by sites with poor network connectivity.
+.ip w
+If you are the
+.q best
+(that is, lowest preference)
+MX for a given host,
+you should normally detect this situation
+and treat that condition specially,
+by forwarding the mail to a UUCP feed,
+treating it as local,
+or whatever.
+However, in some cases (such as Internet firewalls)
+you may want to try to connect directly to that host
+as though it had no MX records at all.
+Setting this option causes
+.i sendmail
+to try this.
+The downside is that errors in your configuration
+are likely to be diagnosed as
+.q "host unknown"
+or
+.q "message timed out"
+instead of something more meaningful.
+This option is disrecommended.
 .ip x\fILA\fP
 When the system load average exceeds
 .i LA ,
 .ip x\fILA\fP
 When the system load average exceeds
 .i LA ,
@@ -3481,12 +3983,9 @@ its priority will be decreased by the indicated value.
 In most environments this should be positive,
 since hosts that are down are all too often down for a long time.
 Defaults to 90000.
 In most environments this should be positive,
 since hosts that are down are all too often down for a long time.
 Defaults to 90000.
-.ip 8
-Preserve eight bits of data in the body on input.
-Normally the input is stripped to seven bits as per RFC822.
-See also the
-.b L
-mailer flag.
+.ip 7
+Strip input to seven bits for compatibility with old systems.
+This shouldn't be necessary.
 .lp
 All options can be specified on the command line using the
 \-o flag,
 .lp
 All options can be specified on the command line using the
 \-o flag,
@@ -3494,7 +3993,7 @@ but most will cause
 .i sendmail
 to relinquish its setuid permissions.
 The options that will not cause this are
 .i sendmail
 to relinquish its setuid permissions.
 The options that will not cause this are
-b, d, e, E, i, L, m, o, p, r, s, v, C, and 8.
+b, d, e, E, i, L, m, o, p, r, s, v, C, and 7.
 Also, M (define macro) when defining the r or s macros
 is also considered
 .q safe .
 Also, M (define macro) when defining the r or s macros
 is also considered
 .q safe .
@@ -3555,6 +4054,19 @@ These are not intended to be long term supports;
 rather, they describe compatibility features
 which will probably be removed in future releases.
 .pp
 rather, they describe compatibility features
 which will probably be removed in future releases.
 .pp
+.b N.B.:
+these version
+.i levels
+have nothing
+to do with the version
+.i number
+on the files.
+For example,
+as of this writing
+version 8 config files
+(specifically, 8.6)
+used version level 5 configurations.
+.pp
 .q Old
 configuration files are defined as version level one.
 Version level two files make the following changes:
 .q Old
 configuration files are defined as version level one.
 Version level two files make the following changes:
@@ -3602,16 +4114,14 @@ allow # initiated comments on all lines.
 Exceptions are backslash escaped # marks
 and the $# syntax.
 .pp
 Exceptions are backslash escaped # marks
 and the $# syntax.
 .pp
-Version level four configuration files
-send error messages with a return path of
-.q <>
-as permitted by RFC 821 section 3.6
-and required by RFC 1123 section 5.3.3.
-This is not the default
-because this breaks older configuration files.
-Note that the macro
-.b $n
-is still used to specify the envelope From: header value.
+Version level four configurations
+are completely equivalent to level three
+for historical reasons.
+.pp
+Version level five configuration files
+change the default definition of
+.b $w
+to be just the first component of the hostname.
 .sh 3 "K \*- key file declaration"
 .pp
 Special maps can be defined using the line:
 .sh 3 "K \*- key file declaration"
 .pp
 Special maps can be defined using the line:
@@ -3624,7 +4134,8 @@ is the handle by which this map is referenced in the rewriting rules.
 The
 .i mapclass
 is the name of a type of map;
 The
 .i mapclass
 is the name of a type of map;
-these are compiled in to sendmail.
+these are compiled in to
+.i sendmail .
 The
 .i arguments
 are interpreted depending on the class;
 The
 .i arguments
 are interpreted depending on the class;
@@ -3700,39 +4211,70 @@ There are four predefined database lookup classes:
 .q hash ,
 and
 .q nis .
 .q hash ,
 and
 .q nis .
-The first requires that sendmail be compiled with the
+The first requires that
+.i sendmail
+be compiled with the
 .b ndbm
 library;
 the second two require the
 .b db
 library,
 .b ndbm
 library;
 the second two require the
 .b db
 library,
-and the third requires that sendmail be compiled with NIS support.
+and the third requires that
+.i sendmail
+be compiled with NIS support.
 All four accept as arguments the some optional flags
 All four accept as arguments the some optional flags
-and a filename (or a mapname for NIS).
+and a filename
+(or a mapname for NIS;
+the filename is the root of the database path,
+so that
+.q .db
+or some other extension appropriate for the database type
+will be added to get the actual database name).
 Known flags are:
 .ip "\-o"
 Indicates that this map is optional \*- that is,
 if it cannot be opened,
 no error is produced,
 Known flags are:
 .ip "\-o"
 Indicates that this map is optional \*- that is,
 if it cannot be opened,
 no error is produced,
-and sendmail will behave as if the map existed but was empty.
+and
+.i sendmail
+will behave as if the map existed but was empty.
 .ip "\-N"
 .ip "\-N"
-Normally sendmail does not include the trailing null byte
-on a string as part of the key.
-If this flag is indicated,
-it will be included.
-This is for compatibility with some methods of building the maps.
+Normally when maps are written,
+the trailing null byte is not included as part of the key.
+If this flag is indicated it will be included.
+During lookups, only the null-byte-included form will be searched.
+See also
+.b \-O.
+.ip "\-O"
+If neither
+.b \-N
+or
+.b \-O
+are specified,
+.i sendmail
+uses an adaptive algorithm to decide whether or not to look for null bytes
+on the end of keys.
+It starts by trying both;
+if it finds any key with a null byte it never tries again without a null byte
+and vice versa.
+If this flag is specified,
+it never tries with a null byte;
+this can speed matches but is never necessary.
+If both
+.b \-N
+and
+.b \-O
+are specified,
+.i sendmail
+will never try any matches at all \(em
+that is, everything will appear to fail.
 .ip "\-a\fIx\fP"
 .ip "\-a\fIx\fP"
-Append the character
+Append the string
 .i x
 on successful matches.
 For example, the default
 .i host
 map appends a dot on successful matches.
 .i x
 on successful matches.
 For example, the default
 .i host
 map appends a dot on successful matches.
-.ip "\-d\fIdomain\fP"
-Use the indicated
-.i domain
-instead of the default domain.
-Used only for NIS maps.
 .ip "\-f"
 Fold upper to lower case before looking up the key.
 .ip "\-m"
 .ip "\-f"
 Fold upper to lower case before looking up the key.
 .ip "\-m"
@@ -3755,14 +4297,26 @@ and
 to the given filename;
 the two
 .i db -based
 to the given filename;
 the two
 .i db -based
-maps do not.
+maps append
+.q \&.db .
+For example, the map specification
+.(b
+Kuucp dbm \-o \-N /usr/lib/uucpmap
+.)b
+specifies an optional map named
+.q uucp
+of class
+.q dbm ;
+it always has null bytes at the end of every string,
+and the data is located in
+/usr/lib/uucpmap.{dir,pag}.
 .pp
 The program
 .i makemap (8)
 can be used to build any of the three database-oriented maps.
 It takes the following flags:
 .ip \-f
 .pp
 The program
 .i makemap (8)
 can be used to build any of the three database-oriented maps.
 It takes the following flags:
 .ip \-f
-Fold upper to lower case in the map.
+Do not fold upper to lower case in the map.
 .ip \-N
 Include null bytes in keys.
 .ip \-o
 .ip \-N
 Include null bytes in keys.
 .ip \-o
@@ -3772,6 +4326,63 @@ Allow replacement of existing keys;
 normally, re-inserting an existing key is an error.
 .ip \-v
 Print what is happening.
 normally, re-inserting an existing key is an error.
 .ip \-v
 Print what is happening.
+.lp
+The
+.i sendmail
+daemon does not have to be restarted to read the new maps
+as long as you change them in place;
+file locking is used so that the maps won't be read
+while they are being updated.\**
+.(f
+\**That is, don't create new maps and then use
+.i mv (1)
+to move them into place.
+I consider this a shortfall (a.k.a. bug) in
+.i sendmail
+which should be fixed in a future release.
+.)f
+.pp
+There are also two builtin maps that are,
+strictly speaking,
+not database lookups.
+.pp
+The
+.q host
+map does host domain canonification;
+given a host name it calls the name server
+to find the canonical name for that host.
+.pp
+The
+.q dequote
+map strips double quotes (") from a name.
+It does not strip backslashes.
+It will not strip quotes if the resulting string
+would contain unscannable syntax
+(that is, basic errors like unbalanced angle brackets;
+more sophisticated errors such as unknown hosts are not checked).
+The intent is for use when trying to accept mail from systems such as
+DECnet
+that routinely quote odd syntax such as
+.(b
+"49ers::ubell"
+.)b
+A typical usage is probably something like:
+.(b
+Kdequote dequote
+
+\&...
+
+R$\-   $: $(dequote $1 $)
+R$\- $+        $: $>3 $1 $2
+.)b
+Care must be taken to prevent unexpected results;
+for example,
+.(b
+"|someprogram < input > output"
+.)b
+will have quotes stripped,
+but the result is probably not what you had in mind.
+Fortunately these cases are rare.
 .pp
 New classes can be added in the routine
 .b setupmaps
 .pp
 New classes can be added in the routine
 .b setupmaps
@@ -4161,9 +4772,11 @@ a single word address
 is probably going to print out several pages worth of information.
 .pp
 You should be warned that internally,
 is probably going to print out several pages worth of information.
 .pp
 You should be warned that internally,
-.b sendmail
+.i sendmail
 applies ruleset 3 to all addresses.
 applies ruleset 3 to all addresses.
-In this version of sendmail, you will have to do that manually.
+In this version of
+.i sendmail ,
+you will have to do that manually.
 For example, older versions allowed you to use
 .(b
 0 bruce@broadcast.sony.com
 For example, older versions allowed you to use
 .(b
 0 bruce@broadcast.sony.com
@@ -4202,7 +4815,7 @@ or
 .b \-r
 flag respectively.
 These flags are only passed if they were passed to
 .b \-r
 flag respectively.
 These flags are only passed if they were passed to
-.i sendmail,
+.i sendmail ,
 so that mailers that give errors under some circumstances
 can be placated.
 If the mailer is not picky
 so that mailers that give errors under some circumstances
 can be placated.
 If the mailer is not picky
@@ -4325,6 +4938,15 @@ These sets can also be used
 to do special purpose output rewriting
 in cooperation with ruleset four.
 .pp
 to do special purpose output rewriting
 in cooperation with ruleset four.
 .pp
+The S and R fields
+can be specified as two numbers separated by a slash
+(e.g.,
+.q "S=10/11" ),
+meaning that all envelope addresses will be processed through ruleset 10
+and all header addresses will be processed through ruleset 11.
+With only one number specified,
+both envelope and header rewriting sets are set to the indicated ruleset.
+.pp
 The E field defines the string to use
 as an end-of-line indication.
 A string containing only newline is the default.
 The E field defines the string to use
 as an end-of-line indication.
 A string containing only newline is the default.
@@ -4400,7 +5022,9 @@ and recipient addresses by ruleset twenty-one.
 There is a 100,000 byte limit on messages passed through this mailer.
 .sh 2 "The User Database"
 .pp
 There is a 100,000 byte limit on messages passed through this mailer.
 .sh 2 "The User Database"
 .pp
-If you have a version of sendmail with the user database package
+If you have a version of
+.i sendmail
+with the user database package
 compiled in,
 the handling of sender and recipient addresses
 is modified.
 compiled in,
 the handling of sender and recipient addresses
 is modified.
@@ -4436,6 +5060,13 @@ there should be an appropriate
 record for that name to allow return mail.
 See also
 .i :default:mailname .
 record for that name to allow return mail.
 See also
 .i :default:mailname .
+.ip mailsender
+Changes any mail sent to this address to have the indicated envelope sender.
+This is intended for mailing lists,
+and will normally be the name of an appropriate -request address.
+It is very similar to the owner-\c
+.i list
+syntax in the alias file.
 .ip fullname
 The full name of the user.
 .ip office-address
 .ip fullname
 The full name of the user.
 .ip office-address
@@ -4457,7 +5088,8 @@ In the University this is often just the name of their graduate advisor.
 A pointer to a file from which plan information can be gathered.
 .pp
 As of this writing,
 A pointer to a file from which plan information can be gathered.
 .pp
 As of this writing,
-only a few of these fields are actually being used by sendmail:
+only a few of these fields are actually being used by
+.i sendmail :
 .i maildrop
 and
 .i mailname .
 .i maildrop
 and
 .i mailname .
@@ -4534,9 +5166,11 @@ a much less efficient method of alias lookup is used.
 If set, use the new database package from Berkeley (from 4.4BSD).
 This package is substantially faster than DBM or NDBM.
 If NEWDB and NDBM are both set,
 If set, use the new database package from Berkeley (from 4.4BSD).
 This package is substantially faster than DBM or NDBM.
 If NEWDB and NDBM are both set,
-sendmail will read DBM files,
+.i sendmail
+will read DBM files,
 but will create and use NEWDB files.
 but will create and use NEWDB files.
-.ip YPCOMPAT
+.ip NIS
+Include support for NIS.
 If set together with
 .i both
 NEWDB and NDBM,
 If set together with
 .i both
 NEWDB and NDBM,
@@ -4585,7 +5219,7 @@ system call.
 This will allow you to give a temporary failure
 message to incoming SMTP email
 when you are low on disk space.
 This will allow you to give a temporary failure
 message to incoming SMTP email
 when you are low on disk space.
-It is set by default on 4.4 BSD and OSF/1 systems.
+It is set by default on 4.4BSD and OSF/1 systems.
 .ip HASUSTAT
 Set if you have the
 .i ustat (2)
 .ip HASUSTAT
 Set if you have the
 .i ustat (2)
@@ -4595,8 +5229,6 @@ You should only set one of HASSTATFS or HASUSTAT;
 the first is preferred.
 .ip _PATH_SENDMAILCF
 The pathname of the sendmail.cf file.
 the first is preferred.
 .ip _PATH_SENDMAILCF
 The pathname of the sendmail.cf file.
-.ip _PATH_SENDMAILFC
-The pathname of the sendmail.fc file.
 .ip _PATH_SENDMAILPID
 The pathname of the sendmail.pid file.
 .ip LA_TYPE
 .ip _PATH_SENDMAILPID
 The pathname of the sendmail.pid file.
 .ip LA_TYPE
@@ -4644,6 +5276,14 @@ usually
 .q _avenrun
 or
 .q avenrun ).
 .q _avenrun
 or
 .q avenrun ).
+.pp
+There are also several compilation flags to indicate the environment
+such as
+.q _AIX3
+and
+.q _SCO_unix_ .
+See the READ_ME
+file for the latest scoop on these flags.
 .sh 2 "Parameters in src/conf.h"
 .pp
 Parameters and compilation options
 .sh 2 "Parameters in src/conf.h"
 .pp
 Parameters and compilation options
@@ -4704,10 +5344,6 @@ The maximum number of entries that will be processed
 in a single queue run.
 .ip "MAXMXHOSTS [20]"
 The maximum number of MX records we will accept for any single host.
 in a single queue run.
 .ip "MAXMXHOSTS [20]"
 The maximum number of MX records we will accept for any single host.
-.ip "MAXIPADDR [16]"
-The maximum number of numeric IP addresses we will accept
-for this host.
-This does not limit the number the number of addresses for other hosts.
 .lp
 A number of other compilation options exist.
 These specify whether or not specific code should be compiled in.
 .lp
 A number of other compilation options exist.
 These specify whether or not specific code should be compiled in.
@@ -4722,10 +5358,18 @@ flag must be used.
 Some people, believing that it was a security hole
 (it was, once)
 have turned it off and thus crippled debuggers.
 Some people, believing that it was a security hole
 (it was, once)
 have turned it off and thus crippled debuggers.
-.ip DAEMON
+.ip NETINET
+If set,
+support for Internet protocol networking is compiled in.
+Previous versions of
+.i sendmail
+referred to this as
+.sm DAEMON ;
+this old usage is now incorrect.
+.ip NETISO
 If set,
 If set,
-code to run a daemon is compiled in.
-This code is for 4.2 or 4.3BSD.
+support for ISO protocol networking is compiled in
+(it may be appropriate to #define this in the Makefile instead of conf.h).
 .ip LOG
 If set,
 the
 .ip LOG
 If set,
 the
@@ -4785,6 +5429,17 @@ This adds a new level of local name expansion
 between aliasing and forwarding.
 It also uses the NEWDB package.
 This may change in future releases.
 between aliasing and forwarding.
 It also uses the NEWDB package.
 This may change in future releases.
+.ip IDENTPROTO
+Compile in the IDENT protocol as defined in RFC 1413.
+This defaults on for all systems except Ultrix,
+which apparently has the interesting
+.q feature
+that when it receives a
+.q "host unreachable"
+message it closes all open connections to that host.
+Since some firewall gateways send this error code
+when you access an unauthorized port (such as 113, used by IDENT),
+Ultrix cannot receive email from such hosts.
 .sh 2 "Configuration in src/conf.c"
 .pp
 The following changes can be made in conf.c.
 .sh 2 "Configuration in src/conf.c"
 .pp
 The following changes can be made in conf.c.
@@ -4855,7 +5510,7 @@ specifies a sender.
 The order of these fields in the
 .i HdrInfo
 table specifies
 The order of these fields in the
 .i HdrInfo
 table specifies
-.i sendmail's
+.i sendmail 's
 preference
 for which field to return error messages to.
 .nr ii 5n
 preference
 for which field to return error messages to.
 .nr ii 5n
@@ -5055,7 +5710,7 @@ otherwise.
 .pp
 The lookup function is called as
 .(b
 .pp
 The lookup function is called as
 .(b
-\fIxxx\fP_map_lookup(MAP *map, char buf[], int bufsize, char **av)
+\fIxxx\fP_map_lookup(MAP *map, char buf[], int bufsize, char **av, int *statp)
 .)b
 The
 .i map
 .)b
 The
 .i map
@@ -5070,6 +5725,12 @@ The
 .i av
 is a list of arguments passed in from the rewrite line.
 The lookup function should return a pointer to the new value.
 .i av
 is a list of arguments passed in from the rewrite line.
 The lookup function should return a pointer to the new value.
+IF the map lookup fails,
+.i *statp
+should be set to an exit status code;
+in particular, it should be set to
+.sm EX_TEMPFAIL
+if recovery is to be attempted by the higher level code.
 .sh 3 "Queueing Function"
 .pp
 The routine
 .sh 3 "Queueing Function"
 .pp
 The routine
@@ -5174,7 +5835,7 @@ The file
 .i src/daemon.c
 contains a number of routines that are dependent
 on the local networking environment.
 .i src/daemon.c
 contains a number of routines that are dependent
 on the local networking environment.
-The version supplied is specific to 4.3 BSD.
+The version supplied assumes you have BSD style sockets.
 .pp
 In previous releases,
 we recommended that you modify the routine
 .pp
 In previous releases,
 we recommended that you modify the routine
@@ -5185,11 +5846,11 @@ if you wanted to generalize
 .b $]
 lookups.
 We now recommend that you create a new keyed map instead.
 .b $]
 lookups.
 We now recommend that you create a new keyed map instead.
-.sh 1 "CHANGES IN VERSION 6"
+.sh 1 "CHANGES IN VERSION 8"
 .pp
 The following summarizes changes
 since the last commonly available version of
 .pp
 The following summarizes changes
 since the last commonly available version of
-.b sendmail
+.i sendmail
 (5.67):
 .sh 2 "Connection Caching"
 .pp
 (5.67):
 .sh 2 "Connection Caching"
 .pp
@@ -5203,16 +5864,70 @@ substantial performance improvements can be expected for queue processing.
 If two hosts with different names in a single message
 happen to have the same set of MX hosts,
 they can be sent in the same transaction.
 If two hosts with different names in a single message
 happen to have the same set of MX hosts,
 they can be sent in the same transaction.
-Version 6 notices this and tries to batch the messages.
+Version 8 notices this and tries to batch the messages.
+.sh 2 "RFC 1123 Compliance"
+.pp
+A number of changes have been made to make
+.i sendmail
+.q "conditionally compliant"
+(that is,
+.i sendmail
+satisfies all of the
+.q MUST
+clauses and most but not all of the
+.q SHOULD
+clauses in RFC 1123).
+.pp
+The major areas of change are (numbers are RFC 1123 section numbers):
+.nr ii \w'5.3.1.1\0\0'u
+.ip 5.2.7
+Response to RCPT command is fast.
+.ip 5.2.8
+Numeric IP addresses are logged in Received: lines.
+.ip 5.2.17
+Self domain literal is properly handled.
+.ip 5.3.2
+Better control over individual timeouts.
+.ip 5.3.3
+Error messages are sent as
+.q From:<> .
+.ip 5.3.3
+Error messages are never sent to
+.q <> .
+.ip 5.3.3
+Route-addrs are pruned.
+.lp
+The areas in which
+.i sendmail
+is not
+.q "unconditionally compliant"
+are:
+.ip 5.2.6
+.i Sendmail
+does do header munging.
+.ip 5.2.10
+.i Sendmail
+doesn't always use the exact SMTP message text
+as listed in RFC 821.
+.ip 5.3.1.1
+.i Sendmail
+doesn't guarantee only one connect for each host in queue runs.
+.ip 5.3.1.1
+.i Sendmail
+doesn't always provide adequate concurrency limits.
+.sh 2 "Extended SMTP Support"
+.pp
+Version 8 includes both sending and receiving support for Extended
+SMTP support as defined by RFC 1425 (basic) and RFC 1427 (SIZE);
+and limited support for RFC 1426 (BODY).
 .sh 2 "Eight-Bit Clean"
 .pp
 Previous versions of
 .sh 2 "Eight-Bit Clean"
 .pp
 Previous versions of
-.b sendmail
+.i sendmail
 used the 0200 bit for quoting.
 This version avoids that use.
 However, for compatibility with RFC 822,
 used the 0200 bit for quoting.
 This version avoids that use.
 However, for compatibility with RFC 822,
-the default is still to strip the eighth bit;
-set option `8' to get full 8-bit clean processing.
+you can set option `7' to get seven bit stripping.
 .pp
 Individual mailers can still produce seven bit out put using the
 `7' mailer flag.
 .pp
 Individual mailers can still produce seven bit out put using the
 `7' mailer flag.
@@ -5230,18 +5945,40 @@ had a number of annoying
 .q features
 which have been removed in this release.
 In particular,
 .q features
 which have been removed in this release.
 In particular,
-these more tightly bind (pun intended) the name server to sendmail,
+these more tightly bind (pun intended) the name server to
+.i sendmail ,
 so that the name server resolution rules are incorporated directly into
 .b sendmail .
 .sh 2 "Keyed Files"
 .pp
 Generalized keyed files is an idea taken directly from
 .sm IDA
 so that the name server resolution rules are incorporated directly into
 .b sendmail .
 .sh 2 "Keyed Files"
 .pp
 Generalized keyed files is an idea taken directly from
 .sm IDA
-.b sendmail
+.i sendmail
 (albeit with a completely different implementation).
 They can be useful on large sites.
 .pp
 (albeit with a completely different implementation).
 They can be useful on large sites.
 .pp
-R6 also understands YP.
+Version 8 also understands YP.
+.sh 2 "Multi-Word Classes"
+.pp
+Classes can now be multiple words.
+For example,
+.(b
+CShofmann.CS.Berkeley.EDU
+.)b
+allows you to match the entire string
+.q hofmann.CS.Berkeley.EDU
+using the single construct
+.q $=S .
+.sh 2 "Deferred Macro Expansion"
+.pp
+The
+.b $& \c
+.i x
+construct has been adopted from
+.sm IDA .
+.sh 2 "IDENT Protocol Support"
+.pp
+The IDENT protocol as defined in RFC 1413 is supported.
 .sh 2 "Parsing Bug Fixes"
 .pp
 A number of small bugs having to do with things like
 .sh 2 "Parsing Bug Fixes"
 .pp
 A number of small bugs having to do with things like
@@ -5275,10 +6012,37 @@ This will cause downstream errors to be returned to that owner.
 .sh 2 "Dynamic Header Allocation"
 .pp
 The fixed size limit on header lines has been eliminated.
 .sh 2 "Dynamic Header Allocation"
 .pp
 The fixed size limit on header lines has been eliminated.
-.sh 2 "New Command Line Flag"
+.sh 2 "New Command Line Flags"
+.pp
+The
+.b \-B
+flag has been added to pass in body type information.
 .pp
 .pp
-The \-p flag has been added
+The
+.b \-p
+flag has been added
 to pass in protocol information.
 to pass in protocol information.
+.pp
+The
+.b \-X
+flag has been added
+to allow logging of all protocol in and out of
+.i sendmail
+for debugging.
+.sh 2 "Enhanced Command Line Flags"
+.pp
+The
+.b \-q
+flag can limit limit a queue run to specific recipients, senders, or queue ids
+using
+.b \-qR\c
+.i substring ,
+.b \-qS\c
+.i substring ,
+or
+.b \-qI\c
+.i substring
+respectively.
 .sh 2 "New and Old Configuration Line Types"
 .pp
 The
 .sh 2 "New and Old Configuration Line Types"
 .pp
 The
@@ -5293,6 +6057,13 @@ line has been added to declare database maps.
 The
 .b V
 line has been added to declare the configuration version level.
 The
 .b V
 line has been added to declare the configuration version level.
+.pp
+The
+.b M
+line has a
+.q D=
+field that lets you change into a temporary directory while that mailer
+is running.
 .sh 2 "New Options"
 .pp
 Several new options have been added,
 .sh 2 "New Options"
 .pp
 Several new options have been added,
@@ -5301,6 +6072,7 @@ others to allow tuning that was previously available
 only by recompiling.
 They are described in detail in Section 5.1.5.
 Briefly,
 only by recompiling.
 They are described in detail in Section 5.1.5.
 Briefly,
+.nr ii 0.5i
 .ip b
 Insist on a minimum number of disk blocks.
 .ip C
 .ip b
 Insist on a minimum number of disk blocks.
 .ip C
@@ -5311,38 +6083,90 @@ Default error message.
 Enable GECOS matching.
 .ip h
 Maximum hop count.
 Enable GECOS matching.
 .ip h
 Maximum hop count.
+.ip j
+Send errors in MIME-encapsulated format.
 .ip J
 Forward file path.
 .ip k
 Connection cache size
 .ip K
 Connection cache lifetime.
 .ip J
 Forward file path.
 .ip k
 Connection cache size
 .ip K
 Connection cache lifetime.
+.ip l
+Enable Errors-To: header.
+These headers violate RFC 1123;
+this option is included to provide back compatibility
+with old versions of
+.i sendmail .
+.ip O
+Set incoming SMTP daemon options, such as an alternate SMTP port.
 .ip p
 Privacy options.
 .ip p
 Privacy options.
+.ip R
+Don't prune route-addrs.
 .ip U
 User database spec.
 .ip U
 User database spec.
-.ip 8
-Run eight bit clean.
+.ip V
+Fallback
+.q MX
+host.
+.ip w
+.q "Best MX"
+handling technique.
+.ip 7
+Do not run eight bit clean.
 .sh 2 "Extended Options"
 .pp
 The
 .b r
 .sh 2 "Extended Options"
 .pp
 The
 .b r
-(read timeout)
-and
+(read timeout),
 .b I
 .b I
-(use BIND)
+(use BIND),
+and
+.b T
+(queue timeout)
 options have been extended to pass in more information.
 options have been extended to pass in more information.
-.sh 2 "New Mailer Flag"
+.sh 2 "New Mailer Flags"
 .pp
 .pp
-The
-.b c
-mailer flag will strip all comments
-from addresses;
+Several new mailer flags have been added.
+.ip a
+Try to use ESMTP when creating a connection.
+If this is not set,
+.i sendmail
+will still try if the other end hints that it knows about ESMTP
+in its greeting message;
+this flag says to try even if it doesn't hint.
+If the EHLO (extended hello)
+command fails,
+.i sendmail
+falls back to old SMTP.
+.ip b
+Ensure that there is a blank line at the end of all messages.
+.ip c
+Strip all comments from addresses;
 this should only be used as a last resort
 when dealing with cranky mailers.
 this should only be used as a last resort
 when dealing with cranky mailers.
+.ip g
+Never use the null sender as the envelope sender,
+even when running SMTP.
+Although this violates RFC 1123,
+it may be necessary when you must deal with some obnoxious old hosts.
+.ip 7
+Strip all output to 7 bits.
+.sh 2 "New Pre-Defined Macros"
+.pp
+The following macros are pre-defined:
+.ip $k
+The UUCP node name,
+nominally from
+.i uname (2)
+call.
+.ip $m
+The domain part of our full hostname.
+.ip $_
+The RFC 1413-provided sender address.
 .sh 2 "New LHS Token"
 .pp
 .sh 2 "New LHS Token"
 .pp
-Version 6 allows
+Version 8 allows
 .b $@
 on the Left Hand Side of an
 .q R
 .b $@
 on the Left Hand Side of an
 .q R
@@ -5350,7 +6174,7 @@ line to match zero tokens.
 This is intended to be used to match the null input.
 .sh 2 "Bigger Defaults"
 .pp
 This is intended to be used to match the null input.
 .sh 2 "Bigger Defaults"
 .pp
-Version 6 allows up to 100 rulesets instead of 30.
+Version 8 allows up to 100 rulesets instead of 30.
 It is recommended that rulesets 0\-9 be reserved for
 .i sendmail 's
 dedicated use in future releases.
 It is recommended that rulesets 0\-9 be reserved for
 .i sendmail 's
 dedicated use in future releases.
@@ -5361,7 +6185,7 @@ The number of queued messages that can be handled at one time
 has been raised from 600 to 1000.
 .sh 2 "Different Default Tuning Parameters"
 .pp
 has been raised from 600 to 1000.
 .sh 2 "Different Default Tuning Parameters"
 .pp
-Version 6 has changed the default parameters
+Version 8 has changed the default parameters
 for tuning queue costs
 to make the number of recipients more important
 than the size of the message (for small messages).
 for tuning queue costs
 to make the number of recipients more important
 than the size of the message (for small messages).
@@ -5386,16 +6210,61 @@ Previous versions of
 treated VRFY and EXPN the same.
 In this version,
 VRFY doesn't expand aliases or follow .forward files.
 treated VRFY and EXPN the same.
 In this version,
 VRFY doesn't expand aliases or follow .forward files.
+EXPN still does.
 .pp
 As an optimization, if you run with your default delivery mode being
 queue-only,
 the RCPT command will also not chase aliases and .forward files.
 It will chase them when it processes the queue.
 .pp
 As an optimization, if you run with your default delivery mode being
 queue-only,
 the RCPT command will also not chase aliases and .forward files.
 It will chase them when it processes the queue.
+.sh 2 "[IPC] Mailers Allow Multiple Hosts"
+.pp
+When an address resolves to a mailer that has
+.q [IPC]
+as its
+.q Path ,
+the $@ part (host name)
+can be a colon-separated list of hosts instead of a single hostname.
+This asks
+.i sendmail
+to search the list for the first entry that is available
+exactly as though it were an MX record.
+The intent is to route internal traffic through internal networks
+without publishing an MX record to the net.
+MX expansion is still done on the individual items.
+.sh 2 "Aliases Extended"
+.pp
+The implementation has been merged with maps.
+Among other things,
+this supports NIS-based aliases.
 .sh 2 "Portability and Security Enhancements"
 .pp
 A number of internal changes have been made to enhance portability.
 .pp
 Several fixes have been made to increase the paranoia factor.
 .sh 2 "Portability and Security Enhancements"
 .pp
 A number of internal changes have been made to enhance portability.
 .pp
 Several fixes have been made to increase the paranoia factor.
+.sh 2 "Miscellaneous Changes"
+.pp
+.i Sendmail
+writes a
+.i /etc/sendmail.pid
+file with the current process id of the SMTP daemon.
+.pp
+Two people using the same program in their .forward file
+are considered different
+so that duplicate elimination doesn't delete one of them.
+.pp
+The
+.i mailstats
+program prints mailer names
+and gets the location of the
+.i sendmail.st
+file from
+.i /etc/sendmail.cf .
+.pp
+Many minor bugs have been fixed, such as handling of backslashes
+inside of quotes.
+.pp
+A hook (ruleset 5) has been added
+to allow rewriting of local addresses after aliasing.
 .sh 1 "ACKNOWLEDGEMENTS"
 .pp
 I've worked on
 .sh 1 "ACKNOWLEDGEMENTS"
 .pp
 I've worked on
@@ -5418,6 +6287,33 @@ Bryan was also available to bounce ideas off of.
 Many, many people contributed chunks of code and ideas to
 .i sendmail .
 It has proven to be a group network effort.
 Many, many people contributed chunks of code and ideas to
 .i sendmail .
 It has proven to be a group network effort.
+Version 8 in particular was a group project.
+The following people made notable contributions:
+.(l
+Keith Bostic, CSRG, University of California, Berkeley
+Michael J. Corrigan, University of California, San Diego
+Bryan Costales, International Computer Science Institute
+Pa\*:r (Pell) Emanuelsson
+Craig Everhart, Transarc Corporation
+Tom Ivar Helbekkmo, Norwegian School of Economics
+Allan E. Johannesen, WPI
+Jonathan Kamens, OpenVision Technologies, Inc.
+Takahiro Kanbe, Fuji Xerox Information Systems Co., Ltd.
+Brian Kantor, University of California, San Diego
+Murray S. Kucherawy, HookUp Communication Corp.
+Bruce Lilly, Sony U.S.
+Karl London
+Nakamura Motonori, Kyoto University
+John Gardiner Myers, Carnegie Mellon University
+Neil Rickert, Northern Illinois University
+Eric Schnoebelen, Convex Computer Corp.
+Eric Wassenaar, National Institute for Nuclear and High Energy Physics, Amsterdam
+Christophe Wolfhugel, Herve Schauer Consultants (Paris)
+.)l
+I apologize for anyone I have omitted, misspelled, misattributed, or
+otherwise missed.
+Many other people have contributed ideas, comments, and encouragement.
+I appreciate their contribution as well.
 .++ A
 .+c "COMMAND LINE FLAGS"
 .ba 0
 .++ A
 .+c "COMMAND LINE FLAGS"
 .ba 0
@@ -5438,8 +6334,9 @@ t Run in test mode
 v      Just verify addresses, don't collect or deliver
 i      Initialize the alias database
 p      Print the mail queue
 v      Just verify addresses, don't collect or deliver
 i      Initialize the alias database
 p      Print the mail queue
-z      Freeze the configuration file
 .)b
 .)b
+.ip \-B\fItype\fP
+Indicate body type.
 .ip \-C\fIfile\fP
 Use a different configuration file.
 .i Sendmail
 .ip \-C\fIfile\fP
 Use a different configuration file.
 .i Sendmail
@@ -5497,7 +6394,9 @@ this is equivalent to using \-p.)
 .ip \-q\fItime\fP
 Try to process the queued up mail.
 If the time is given,
 .ip \-q\fItime\fP
 Try to process the queued up mail.
 If the time is given,
-a sendmail will run through the queue at the specified interval
+a
+.i sendmail
+will run through the queue at the specified interval
 to deliver queued mail;
 otherwise, it only runs once.
 .ip \-q\fIXstring\fP
 to deliver queued mail;
 otherwise, it only runs once.
 .ip \-q\fIXstring\fP
@@ -5529,6 +6428,13 @@ The
 line will be deleted before sending.
 Any addresses in the argument vector will be deleted
 from the send list.
 line will be deleted before sending.
 Any addresses in the argument vector will be deleted
 from the send list.
+.ip "\-X \fIlogfile\fP"
+Log all traffic in and out of
+.i sendmail
+in the indicated
+.i logfile
+for debugging mailer problems.
+This produces a lot of data very quickly and should be used sparingly.
 .pp
 There are a number of options that may be specified as
 primitive flags
 .pp
 There are a number of options that may be specified as
 primitive flags
@@ -5553,15 +6459,18 @@ or
 .i /usr/spool/mqueue .
 .pp
 All queue files have the name
 .i /usr/spool/mqueue .
 .pp
 All queue files have the name
-\fIx\fP\|\fBf\fP\fIAA99999\fP
+\fIx\fP\|\fBf\fP\fIAAA99999\fP
 where
 where
-.i AA99999
+.i AAA99999
 is the
 .i id
 for this message
 and the
 .i x
 is a type.
 is the
 .i id
 for this message
 and the
 .i x
 is a type.
+The first letter of the id encodes the hour of the day
+that the message was received by the system
+(with A being the hour between midnight and 1:00AM).
 All files with the same id collectively define one message.
 .pp
 The types are:
 All files with the same id collectively define one message.
 .pp
 The types are:
@@ -5591,7 +6500,7 @@ due to a race condition.
 It should exist for no more than a few milliseconds
 at any given time.
 [This is only used on old versions of
 It should exist for no more than a few milliseconds
 at any given time.
 [This is only used on old versions of
-sendmail;
+.i sendmail ;
 it is not used 
 on newer versions.]
 .ip q
 it is not used 
 on newer versions.]
 .ip q
@@ -5628,9 +6537,15 @@ These use the same syntax
 as header definitions in the configuration file.
 .ip C
 The controlling address.
 as header definitions in the configuration file.
 .ip C
 The controlling address.
+The syntax is
+.q localuser:aliasname .
 Recipient addresses following this line
 Recipient addresses following this line
-will be flagged as having resulted from an alias of this name.
-This affect the actual UNIX user id used for delivery.
+will be flagged so that deliveries will be run as the
+.i localuser
+(a user name from the /etc/passwd file);
+.i aliasname
+is the name of the alias that expanded to this address
+(used for printing messages).
 .ip R
 A recipient address.
 This will normally be completely aliased,
 .ip R
 A recipient address.
 This will normally be completely aliased,
@@ -5662,6 +6577,15 @@ This line is printed by the
 command,
 and is generally used to store status information.
 It can contain any text.
 command,
 and is generally used to store status information.
 It can contain any text.
+.ip F
+Flag bits, represented as one letter per flag.
+Defined flag bits are
+.b r
+indicating that this is a response message
+and
+.b w
+indicating that a warning message has been sent
+announcing that the mail has been delayed.
 .ip $
 A macro definition.
 The values of certain macros
 .ip $
 A macro definition.
 The values of certain macros
@@ -5670,6 +6594,17 @@ The values of certain macros
 and
 .b $s )
 are passed through to the queue run phase.
 and
 .b $s )
 are passed through to the queue run phase.
+.ip B
+The body type.
+The remainder of the line is a text string defining the body type.
+If this field is missing,
+the body type is assumed to be
+.q "undefined"
+and no special processing is attempted.
+Legal values are
+.q 7BIT
+and
+.q 8BITMIME .
 .pp
 As an example,
 the following is a queue file sent to
 .pp
 As an example,
 the following is a queue file sent to
@@ -5684,18 +6619,17 @@ nothing can replace looking at what your own system generates.
 .(b
 P835771
 T404261372
 .(b
 P835771
 T404261372
-DdfAA13557
+DdfAAA13557
 Seric
 Seric
-Cdaemon
 Eowner-sendmail@vangogh.CS.Berkeley.EDU
 Eowner-sendmail@vangogh.CS.Berkeley.EDU
-Ceric
+Ceric:sendmail@vangogh.CS.Berkeley.EDU
 Reric@mammoth.Berkeley.EDU
 Rbostic@okeeffe.CS.Berkeley.EDU
 H?P?return-path: <owner-sendmail@vangogh.CS.Berkeley.EDU>
 Reric@mammoth.Berkeley.EDU
 Rbostic@okeeffe.CS.Berkeley.EDU
 H?P?return-path: <owner-sendmail@vangogh.CS.Berkeley.EDU>
-Hreceived: by vangogh.CS.Berkeley.EDU (5.108/2.7) id AA06703;
+Hreceived: by vangogh.CS.Berkeley.EDU (5.108/2.7) id AAA06703;
        Fri, 17 Jul 92 00:28:55 -0700
 Hreceived: from mail.CS.Berkeley.EDU by vangogh.CS.Berkeley.EDU (5.108/2.7)
        Fri, 17 Jul 92 00:28:55 -0700
 Hreceived: from mail.CS.Berkeley.EDU by vangogh.CS.Berkeley.EDU (5.108/2.7)
-       id AA06698; Fri, 17 Jul 92 00:28:54 -0700
+       id AAA06698; Fri, 17 Jul 92 00:28:54 -0700
 Hreceived: from [128.32.31.21] by mail.CS.Berkeley.EDU (5.96/2.5)
        id AA22777; Fri, 17 Jul 92 03:29:14 -0400
 Hreceived: by foo.bar.baz.de (5.57/Ultrix3.0-C)
 Hreceived: from [128.32.31.21] by mail.CS.Berkeley.EDU (5.96/2.5)
        id AA22777; Fri, 17 Jul 92 03:29:14 -0400
 Hreceived: by foo.bar.baz.de (5.57/Ultrix3.0-C)
@@ -5726,7 +6660,7 @@ check there to find the actual pathnames.
 .ip "/usr/\*(SD/sendmail"
 The binary of
 .i sendmail .
 .ip "/usr/\*(SD/sendmail"
 The binary of
 .i sendmail .
-.ip /usr/bin/newaliases
+.ip /usr/\*(SB/newaliases
 A link to /usr/\*(SD/sendmail;
 causes the alias database to be rebuilt.
 Running this program is completely equivalent to giving
 A link to /usr/\*(SD/sendmail;
 causes the alias database to be rebuilt.
 Running this program is completely equivalent to giving
@@ -5734,7 +6668,7 @@ Running this program is completely equivalent to giving
 the
 .b \-bi
 flag.
 the
 .b \-bi
 flag.
-.ip /usr/bin/mailq
+.ip /usr/\*(SB/mailq
 Prints a listing of the mail queue.
 This program is equivalent to using the
 .b \-bp
 Prints a listing of the mail queue.
 This program is equivalent to using the
 .b \-bp
@@ -5743,9 +6677,6 @@ flag to
 .ip /etc/sendmail.cf
 The configuration file,
 in textual form.
 .ip /etc/sendmail.cf
 The configuration file,
 in textual form.
-.ip /etc/sendmail.fc
-The configuration file
-represented as a memory image.
 .ip /usr/lib/sendmail.hf
 The SMTP help file.
 .ip /etc/sendmail.st
 .ip /usr/lib/sendmail.hf
 The SMTP help file.
 .ip /etc/sendmail.st
@@ -5792,10 +6723,9 @@ A transcript of the current session.
 .\"Eric Allman
 .\"Britton-Lee, Inc.
 .\".sp
 .\"Eric Allman
 .\"Britton-Lee, Inc.
 .\".sp
-.\"Version 6.24
+.\"Version 8.16
 .\".ce 0
 .\".ce 0
-.pn 2
-.bp
+.bp 2
 .ce
 .sz 12
 TABLE OF CONTENTS
 .ce
 .sz 12
 TABLE OF CONTENTS