The following summarizes changes since the last commonly available version of sendmail (5.67). For a detailed list, consult the file RELEASE_NOTES in the root directory of the sendmail distribution.

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.

MX Piggybacking

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 8 notices this and tries to batch the messages.

RFC 1123 Compliance

A number of changes have been made to make sendmail conditionally compliant (that is, sendmail satisfies all of the MUST clauses and most but not all of the SHOULD clauses in RFC 1123).

The major areas of change are (numbers are RFC 1123 section numbers):

Response to RCPT command is fast.
Numeric IP addresses are logged in Received: lines.
Self domain literal is properly handled.
Better control over individual timeouts.
Error messages are sent as From:<>.
Error messages are never sent to <>.
Route-addrs are pruned.

The areas in which sendmail is not unconditionally compliant are:

Sendmail does do header munging.
Sendmail doesn't always use the exact SMTP message text as listed in RFC 821.
Sendmail doesn't guarantee only one connect for each host in queue runs.
Sendmail doesn't always provide adequate concurrency limits.

Extended SMTP Support

Version 8 includes both sending and receiving support for Extended SMTP support as defined by RFC 1651 (basic) and RFC 1653 (SIZE); and limited support for RFC 1652 (BODY).

Eight-Bit Clean

Previous versions of sendmail used the 0200 bit for quoting. This version avoids that use. However, for compatibility with RFC 822, you can set option `7' to get seven bit stripping.

Individual mailers can still produce seven bit output using the `7' mailer flag.

User Database

The user database is an as-yet experimental attempt to provide unified large-site name support. We are installing it at Berkeley; future versions may show significant modifications.

Improved BIND Support

The BIND support, particularly for MX records, had a number of annoying features which have been removed in this release. In particular, these more tightly bind (pun intended) the name server to sendmail, so that the name server resolution rules are incorporated directly into sendmail.

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.

Multi-Word Classes

Classes can now be multiple words. For example,

allows you to match the entire string hofmann.CS.Berkeley.EDU using the single construct $=S.

Deferred Macro Expansion

The $& x construct has been adopted from IDA.

IDENT Protocol Support

The IDENT protocol as defined in RFC 1413 is supported.

Parsing Bug Fixes

A number of small bugs having to do with things like backslash-escaped quotes inside of comments have been fixed.

Separate Envelope/Header Processing

Since the From: line is passed in separately from the envelope sender, these have both been made visible; the $g macro is set to the envelope sender during processing of mailer argument vectors and the header sender during processing of headers.

It is also possible to specify separate per-mailer envelope and header processing. The SenderRWSet and RecipientRWset arguments for mailers can be specified as envelope/header to give different rewritings for envelope versus header addresses.

Owner-List Propagates to Envelope

When an alias has an associated owner-list name, that alias is used to change the envelope sender address. This will cause downstream errors to be returned to that owner.

Dynamic Header Allocation

The fixed size limit on header lines has been eliminated.

New Command Line Flags

The -B flag has been added to pass in body type information.

The -p flag has been added to pass in protocol information.

The -X flag has been added to allow logging of all protocol in and out of sendmail for debugging.

The -O flag implies setting long-form options.

Enhanced Command Line Flags

The -q flag can limit limit a queue run to specific recipients, senders, or queue ids using -qR substring, -qS substring, or -qI substring respectively.

New and Old Configuration Line Types

The K line has been added to declare database maps.

The V line has been added to declare the configuration version level.

The M line has a D= field that lets you change into a temporary directory while that mailer is running. It also has a U= field to allow you to set the user and group id to be used when running the mailer.

New Options

Several new options have been added, many to support new features, others to allow tuning that was previously available only by recompiling. They are described in detail in Section 5.6. Briefly,

Insist on a minimum number of disk blocks.
Set checkpoint interval.
Default error message.
Enable GECOS matching.
Maximum hop count.
Send errors in MIME-encapsulated format.
Forward file path.
Connection cache size
Connection cache lifetime.
Enable Errors-To: header. These headers violate RFC 1123; this option is included to provide back compatibility with old versions of sendmail.
Set incoming SMTP daemon options, such as an alternate SMTP port.
Privacy options.
Don't prune route-addrs.
User database spec.
Fallback MX host.
Best MX handling technique.
Do not run eight bit clean.
Eight bit data handling mode.

Extended Options

The r (read timeout), I (use BIND), and T (queue timeout) options have been extended to pass in more information.

New Mailer Flags

Several new mailer flags have been added.

Try to use ESMTP when creating a connection. If this is not set, 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, sendmail falls back to old SMTP.
Try the user part of addresses for this mailer as aliases.
Ensure that there is a blank line at the end of all messages.
Strip all comments from addresses; this should only be used as a last resort when dealing with cranky mailers.
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.
Turn off the loopback check in the HELO protocol; doing this may cause mailer loops.
Always run the mailer as the recipient of the message.
This user should have a passwd file entry.
Try ruleset 5 if no local aliases.
Strip all output to 7 bits.
Check for :include: files.
Check for |program addresses.
Check for /file addresses.
Check this user against the user database.

Long Option Names

All options can be specified using long names, and some new options can only be specified with long names.

New Pre-Defined Macros

The following macros are pre-defined:

The UUCP node name, nominally from uname(2) call.
The domain part of our full hostname.
The RFC 1413-provided sender address.

New LHS Token

Version 8 allows $@ on the Left Hand Side of an R line to match zero tokens. This is intended to be used to match the null input.

Bigger Defaults

Version 8 allows up to 100 rulesets instead of 30. It is recommended that rulesets 0-9 be reserved for sendmail's dedicated use in future releases.

The total number of MX records that can be used has been raised to 20.

The number of queued messages that can be handled at one time has been raised from 600 to 1000.

Different Default Tuning 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). This is reasonable if you are connected with reasonably fast links.

Auto-Quoting in Addresses

Previously, the Full Name <email address> syntax would generate incorrect protocol output if Full Name had special characters such as dot. This version puts quotes around such names.

Symbolic Names On Error Mailer

Several names have been built in to the $@ portion of the $#error mailer.

SMTP VRFY Doesn't Expand

Previous versions of sendmail treated VRFY and EXPN the same. In this version, VRFY doesn't expand aliases or follow .forward files. EXPN still does.

As an optimization, if you run with your default delivery mode being queue-only or deliver-in-background, the RCPT command will also not chase aliases and .forward files. It will chase them when it processes the queue.

[IPC] Mailers Allow Multiple Hosts

When an address resolves to a mailer that has [IPC] as its Path, the $@ part (host name) can be a colon-separated list of hosts instead of a single hostname. This asks 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.

Aliases Extended

The implementation has been merged with maps. Among other things, this supports NIS-based aliases.

Portability and Security Enhancements

A number of internal changes have been made to enhance portability.

Several fixes have been made to increase the paranoia factor.

Miscellaneous Changes

Sendmail writes a /etc/ file with the current process id of the SMTP daemon.

Two people using the same program in their .forward file are considered different so that duplicate elimination doesn't delete one of them.

The mailstats program prints mailer names and gets the location of the file from /etc/

Many minor bugs have been fixed, such as handling of backslashes inside of quotes.

A hook (ruleset 5) has been added to allow rewriting of local addresses after aliasing.

[Contents] [Previous] [Next]
This document was translated by troff2html v0.21 on October 25, 1997.

Claus Aßmann Please send comments to: <>