This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / usr.sbin / sendmail / CHANGES-R5-R8
index c62aba7..d935731 100644 (file)
@@ -2,15 +2,23 @@
 
 The following is a summary of the changes between the last commonly
 available version of sendmail from Berkeley (5.67) and the latest
 
 The following is a summary of the changes between the last commonly
 available version of sendmail from Berkeley (5.67) and the latest
-version (8.1).  I can't guarantee that it is complete.
+version (8.6).  I can't guarantee that it is complete.
+
+Many of these are ideas that had been tried in IDA, albeit many of
+them with a more general syntax.
 
 
 Connection Caching
 
 
 
 Connection Caching
 
-   Instead of closing SMTP connections immediately, those connections
-   are cached for possible future use.  The advent of MX records made
-   this effective for mailing lists; in addition, substantial performance
-   improvements can be expected for queue processing.
+   Instead of closing SMTP connections immediately, open connections are
+   cached for possible future use.  There is a limit to the number of
+   simultaneous open connections and the idle time of any individual
+   connection.
+   
+   This is of best help during queue processing (since there is the
+   potential of many different messages going to one site), although
+   it can also help when processing MX records which aren't handled
+   by MX Piggybacking.
 
 MX Piggybacking
 
 
 MX Piggybacking
 
@@ -18,6 +26,11 @@ MX Piggybacking
    have the same set of MX hosts, they can be sent in the same
    transaction.  Version 8 notices this and tries to batch the messages.
 
    have the same set of MX hosts, they can be sent in the same
    transaction.  Version 8 notices this and tries to batch the messages.
 
+   For example, if two sites ``foo.com'' and ``bar.com'' are both
+   served by UUNET, they will have the same set of MX hosts and will
+   be sent in one transaction.  UUNET will then split the message
+   and send it to the two individual hosts.
+
 RFC 1123 Changes
 
    A number of changes have been made to make sendmail ``conditionally
 RFC 1123 Changes
 
    A number of changes have been made to make sendmail ``conditionally
@@ -26,23 +39,59 @@ RFC 1123 Changes
 
    The major areas of change are (numbers are RFC 1123 section numbers):
 
 
    The major areas of change are (numbers are RFC 1123 section numbers):
 
-   5.2.7       Response to RCPT command is fast.
+   5.2.7       Response to RCPT command is fast.  Previously, sendmail
+               expanded all aliases as far as it could -- this could
+               take a very long time, particularly if there were
+               name server delays.  Version 8 only checks for the
+               existence of an alias and does the expansion later.
    5.2.8       Numeric IP addresses are logged in Received: lines.
    5.2.8       Numeric IP addresses are logged in Received: lines.
-   5.2.17      Self domain literal is properly handled.
-   5.3.2       Better control over individual timeouts.
-   5.3.3       Error messages are sent as From:<>.
-   5.3.3       Error messages are never sent to <>.
-   5.3.3       Route-addrs are pruned.
+               This helps tracing spoofed messages.
+   5.2.17      Self domain literal is properly handled.  Previously,
+               if someone sent to user@[a.b.c.d], where a.b.c.d is
+               your IP address, the mail would probably be rejected.
+               Version 8 special cases these addresses.
+   5.3.2       Better control over individual timeouts.  RFC 821 specified
+               no timeouts.  Older versions of sendmail had a single
+               timeout, typically set to two hours.  Version 8 allows
+               the configuration file to set timeouts for various
+               SMTP commands individually.
+   5.3.3       Error messages are sent as From:<>.  This was urged by
+               RFC 821 and reiterated by RFC 1123, but older versions
+               of sendmail never really did it properly.  Version 8
+               does.  However, some systems cannot handle this
+               perfectly legal address; if necessary, you can create
+               a special mailer that uses the `g' flag to disable this.
+   5.3.3       Error messages are never sent to <>.  Previously,
+               sendmail was happy to send responses-to-responses which
+               sometimes resulted in responses-to-responses-to-responses
+               which resulted in ....  you get the idea.
+   5.3.3       Route-addrs (the ugly ``<@hosta,@hostb:user@hostc>''
+               syntax) are pruned.  RFC 821 urged the use of this
+               bletcherous syntax.  RFC 1123 has seen the light and
+               officially deprecates them, further urging that you
+               eliminate all but ``user@hostc'' should you receive
+               one of these things.  Version 8 is slightly more generous
+               than the standards suggest; instead of stripping off all
+               the route addressees, it only strips hosts off up to
+               the one before the last one known to DNS, thus allowing
+               you to have pseudo-hosts such as foo.BITNET.  The 'R'
+               option will turn this off.
 
    The areas in which sendmail is not ``unconditionally compliant'' are:
 
    5.2.6       Sendmail does do header munging.
    5.2.10      Sendmail doesn't always use the exact SMTP message
 
    The areas in which sendmail is not ``unconditionally compliant'' are:
 
    5.2.6       Sendmail does do header munging.
    5.2.10      Sendmail doesn't always use the exact SMTP message
-               text from RFC 821.
+               text from RFC 821.  This is a rather silly requirement.
    5.3.1.1     Sendmail doesn't guarantee only one connect for each
    5.3.1.1     Sendmail doesn't guarantee only one connect for each
-               host on queue runs.
+               host on queue runs.  Connection caching gives you most
+               of this, but it does not provide a guarantee.
    5.3.1.1     Sendmail doesn't always provide an adequate limit
    5.3.1.1     Sendmail doesn't always provide an adequate limit
-               on concurrency.
+               on concurrency.  That is, there can be several
+               independent sendmails running at once.  My feeling
+               is that doing an absolute limit would be a mistake
+               (it might result in lost mail).  However, if you use
+               the XLA contributed software, most of this will be
+               guaranteed (but I don't guarantee the guarantee).
 
 Extended SMTP Support
 
 
 Extended SMTP Support
 
@@ -65,6 +114,10 @@ User Database
    unified large-site name support.  We are installing it at Berkeley;
    future versions may show significant modifications.
 
    unified large-site name support.  We are installing it at Berkeley;
    future versions may show significant modifications.
 
+   The user database allows you to map both incoming and outgoing
+   addresses, much like IDA.  However, the interface set is still
+   better with IDA.
+
 Improved BIND Support
 
    The BIND support, particularly for MX records, had a number of
 Improved BIND Support
 
    The BIND support, particularly for MX records, had a number of
@@ -73,13 +126,17 @@ Improved BIND Support
    to sendmail, so that the name server resolution rules are incorporated
    directly into sendmail.
 
    to sendmail, so that the name server resolution rules are incorporated
    directly into sendmail.
 
+   The major change has been that the $[ ... $] operator didn't fully
+   qualify names that were in DNS as A or MX records.  Version 8 does
+   this qualification.
+
 Keyed Files
 
    Generalized keyed files is an idea taken directly from IDA sendmail
    (albeit with a completely different implementation).  They can be
    useful on large sites.
 
 Keyed Files
 
    Generalized keyed files is an idea taken directly from IDA sendmail
    (albeit with a completely different implementation).  They can be
    useful on large sites.
 
-   Version 8 also understands YP.
+   Version 8 includes an "NIS" map class to support NIS/YP maps.
 
 Multi-Word Classes
 
 
 Multi-Word Classes
 
@@ -92,7 +149,7 @@ Multi-Word Classes
 
 Deferred Macro Expansion
 
 
 Deferred Macro Expansion
 
-   The $&x construct has been adopted from IDA .
+   The $&x construct has been adopted from IDA.
 
 IDENT Protocol Support
 
 
 IDENT Protocol Support
 
@@ -161,21 +218,28 @@ New Options
 
    b   Insist on a minimum number of disk blocks.
 
 
    b   Insist on a minimum number of disk blocks.
 
-   C   Delivery checkpoint interval.
+   C   Delivery checkpoint interval.  Checkpoint the queue (to avoid
+       duplicate deliveries) every C addresses.
 
 
-   E   Default error message.
+   E   Default error message.  This message (or the contents of the
+       indicated file) are prepended to error messages.
 
 
-   G   Enable GECOS matching.
+   G   Enable GECOS matching.  If you can't find a local user name
+       and this option is enabled, do a sequential scan of the passwd
+       file to match against full names.  Previously a compile option.
 
 
-   h   Maximum hop count.
+   h   Maximum hop count.  Previously this was compiled in.
 
    j   Send errors in MIME-encapsulated format.
 
 
    j   Send errors in MIME-encapsulated format.
 
-   J   Forward file path.
+   J   Forward file path.  Where to search for .forward files -- defaults
+       to $HOME/.forward.
 
 
-   k   Connection cache size
+   k   Connection cache size.  The total number of connections that will
+       be kept open at any time.
 
 
-   K   Connection cache lifetime.
+   K   Connection cache lifetime.  The amount of time any connection
+       will be permitted to sit idle.
 
    l   Enable Errors-To: header.  These headers violate RFC 1123;
        this option is included to provide back compatibility with
 
    l   Enable Errors-To: header.  These headers violate RFC 1123;
        this option is included to provide back compatibility with
@@ -183,15 +247,27 @@ New Options
 
    O   Incoming daemon options (e.g., use alternate SMTP port).
 
 
    O   Incoming daemon options (e.g., use alternate SMTP port).
 
-   p   Privacy options.
+   p   Privacy options.  These can be used to make your SMTP server
+       less friendly.
+
+   R   Don't prune route-addrs.  Normally, if version 8 sees an address
+       like "<@hostA,@hostB:user@hostC>, sendmail will try to strip off
+       as much as it can (up to user@hostC) as suggested by RFC 1123.
+       This option disables that behaviour.
 
 
-   R   Don't prune route-addrs.
+   U   User database spec.  This is still experimental.
 
 
-   U   User database spec.
+   V   Fallback ``MX'' host.  This can be thought of as an MX host
+       that applies to all addresses that has a very high preference
+       value (that is, use it only if everything else fails).
 
 
-   V   Fallback ``MX'' host.
+   w   If set, assume that if you are the best MX host for a host,
+       you should send directly to that host.  This is intended
+       for compatibility with UIUC sendmail, and may have some
+       use on firewalls.
 
 
-   7   Do not run eight bit clean.
+   7   Do not run eight bit clean.  Technically, you have to assert
+       this option to be RFC 821 compatible.
 
 Extended Options
 
 
 Extended Options
 
@@ -206,7 +282,8 @@ New Mailer Flags
    a   Try to use ESMTP.  It will fall back to SMTP if the initial
        EHLO packet is rejected.
 
    a   Try to use ESMTP.  It will fall back to SMTP if the initial
        EHLO packet is rejected.
 
-   b   Ensure a blank line at the end of messages.
+   b   Ensure a blank line at the end of messages.  Useful on the
+       *file* mailer.
 
    c   Strip all comments from addresses; this should only be used as
        a last resort when dealing with cranky mailers.
 
    c   Strip all comments from addresses; this should only be used as
        a last resort when dealing with cranky mailers.
@@ -257,7 +334,15 @@ Auto-Quoting in Addresses
 Symbolic Names On Error Mailer
 
    Several names have been built in to the $@ portion of the $#error
 Symbolic Names On Error Mailer
 
    Several names have been built in to the $@ portion of the $#error
-   mailer.
+   mailer.  For example:
+
+       $#error $@NOHOST $: Host unknown
+
+New Built-In Mailers
+
+   Two new mailers, *file* and *include*, are included to define options
+   when mailing to a file or a :include: file respectively.  Previously
+   these were overloaded on the local mailer.
 
 SMTP VRFY Doesn't Expand
 
 
 SMTP VRFY Doesn't Expand
 
@@ -267,6 +352,7 @@ SMTP VRFY Doesn't Expand
    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.
    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.
+   This speeds up RCPT processing.
 
 [IPC] Mailers Allow Multiple Hosts
 
 
 [IPC] Mailers Allow Multiple Hosts
 
@@ -281,7 +367,10 @@ SMTP VRFY Doesn't Expand
 Aliases Extended
 
    The implementation has been merged with maps.  Among other things,
 Aliases Extended
 
    The implementation has been merged with maps.  Among other things,
-   this supports NIS-based aliases.
+   this supports multiple alias files and NIS-based aliases.  For
+   example:
+
+       OA/etc/aliases,nis:mail.aliases
 
 Portability and Security Enhancements
 
 
 Portability and Security Enhancements
 
@@ -291,11 +380,13 @@ Portability and Security Enhancements
 
 Miscellaneous Enhancements
 
 
 Miscellaneous Enhancements
 
-   Sendmail writes a /etc/sendmail.pid file with the current process id.
+   Sendmail writes a /etc/sendmail.pid file with the current process id
+   and the current invocation flags.
 
    Two people using the same program (e.g., submit) are considered
    "different" so that duplicate elimination doesn't delete one of
 
    Two people using the same program (e.g., submit) are considered
    "different" so that duplicate elimination doesn't delete one of
-   them.
+   them.  For example, two people forwarding their email to
+   |submit will be treated as two recipients.
 
    The mailstats program prints mailer names and gets the location of
    the sendmail.st file from /etc/sendmail.cf.
 
    The mailstats program prints mailer names and gets the location of
    the sendmail.st file from /etc/sendmail.cf.