f2a0b0fbdf
this version of sendmail tries to use sysconf() if the _SC_* macros are defined in unistd.h. We have the macros but not the function. A temporary "fix" has been made to avoid the issue.
308 lines
9.5 KiB
Plaintext
308 lines
9.5 KiB
Plaintext
SUMMARY OF CHANGES BETWEEN SENDMAIL V5 and V8
|
|
|
|
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.
|
|
|
|
|
|
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 Changes
|
|
|
|
A number of changes have been made to make sendmail ``conditionally
|
|
compliant'' (that is, it 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):
|
|
|
|
5.2.7 Response to RCPT command is fast.
|
|
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.
|
|
|
|
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.
|
|
5.3.1.1 Sendmail doesn't guarantee only one connect for each
|
|
host on queue runs.
|
|
5.3.1.1 Sendmail doesn't always provide an adequate limit
|
|
on concurrency.
|
|
|
|
Extended SMTP Support
|
|
|
|
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).
|
|
|
|
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 out put 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,
|
|
|
|
CShofmann.CS.Berkeley.EDU
|
|
|
|
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.
|
|
|
|
Enhanced Command Line Flags
|
|
|
|
The -q flag can limit limit a queue run to specific recipients,
|
|
senders, or queue ids using -qRsubstring, -qSsubstring, or
|
|
-qIsubstring respectively.
|
|
|
|
New and Old Configuration Line Types
|
|
|
|
The `T' (Trusted users) configuration line has been deleted. It
|
|
will still be accepted but will be ignored.
|
|
|
|
The `K' line has been added to declare database maps.
|
|
|
|
The `V' line has been added to declare the configuration version
|
|
level.
|
|
|
|
The `M' (mailer) line takes a D= field to specify execution
|
|
directory.
|
|
|
|
New Options
|
|
|
|
Several new options have been added, many to support new features,
|
|
others to allow tuning that was previously available only by
|
|
recompiling. Briefly:
|
|
|
|
b Insist on a minimum number of disk blocks.
|
|
|
|
C Delivery checkpoint interval.
|
|
|
|
E Default error message.
|
|
|
|
G Enable GECOS matching.
|
|
|
|
h Maximum hop count.
|
|
|
|
j Send errors in MIME-encapsulated format.
|
|
|
|
J Forward file path.
|
|
|
|
k Connection cache size
|
|
|
|
K Connection cache lifetime.
|
|
|
|
l Enable Errors-To: header. These headers violate RFC 1123;
|
|
this option is included to provide back compatibility with
|
|
old versions of sendmail.
|
|
|
|
O Incoming daemon options (e.g., use alternate SMTP port).
|
|
|
|
p Privacy options.
|
|
|
|
R Don't prune route-addrs.
|
|
|
|
U User database spec.
|
|
|
|
V Fallback ``MX'' host.
|
|
|
|
7 Do not run eight bit clean.
|
|
|
|
Extended Options
|
|
|
|
The `r' (read timeout), `I' (use BIND), and `T' (queue timeout)
|
|
options have been extended to pass in more information.
|
|
|
|
The `A' (alias file) option has been extended to allow multiple
|
|
alias files of different types.
|
|
|
|
New Mailer Flags
|
|
|
|
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.
|
|
|
|
c Strip all comments from addresses; this should only be used as
|
|
a last resort when dealing with cranky mailers.
|
|
|
|
g Never use the null sender as the envelope sender, even when
|
|
running SMTP. This violates RFC 1123.
|
|
|
|
7 Strip all output to this mailer to 7 bits.
|
|
|
|
New Pre-Defined Macros
|
|
|
|
$k UUCP node name from uname(2).
|
|
|
|
$m Domain part of our full hostname.
|
|
|
|
$_ 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.
|
|
|
|
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.
|
|
|
|
[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 Enhancements
|
|
|
|
Sendmail writes a /etc/sendmail.pid file with the current process id.
|
|
|
|
Two people using the same program (e.g., submit) 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 sendmail.st file from /etc/sendmail.cf.
|
|
|
|
Many minor bugs have been fixed, such as handling of backslashes
|
|
inside of quotes.
|
|
|
|
A hook has been added to allow rewriting of local addresses after
|
|
aliasing.
|