📄 release_notes
字号:
${daemon_addr} Daemon address, e.g., 0.0.0.0
${daemon_family} Daemon family, e.g., inet, inet6, etc.
${daemon_name} Daemon name, e.g., MSA.
${daemon_port} Daemon port, e.g., 25
${queue_interval} Queue run interval, e.g., 00:30:00
New macros especially for virtual hosting:
${if_name} hostname of interface of incoming connection.
${if_addr} address of interface of incoming connection.
The latter is only set if the interface does not belong to the
loopback net.
If a message being accepted via a method other than SMTP and
would be rejected by a header check, do not send the message.
Suggested by Phil Homewood of Mincom Pty Ltd.
Don't strip comments for header checks if $>+ is used instead of $>.
Provide header value as quoted string in the macro
${currHeader} (possibly truncated to MAXNAME). Suggested by
Jan Krueger of Unix-AG of University of Hannover.
The length of the header value is stored in ${hdrlen}.
H*: allows to specify a default ruleset for header checks. This
ruleset will only be called if the individual header does
not have its own ruleset assigned. Suggested by Jan
Krueger of Unix-AG of University of Hannover.
The name of the header field stored in ${hdr_name}.
Comments (i.e., text within parentheses) in rulesets are not
removed if the config file version is greater than or equal
to 9. For example, "R$+ ( 1 ) $@ 1" matches the
input "token (1)" but does not match "token".
Avoid removing the Content-Transfer-Encoding MIME header on
MIME messages. Problem noted by Sigurbjorn B. Larusson of
Multimedia Consumer Services. Fix from Per Hedeland of
Ericsson.
Avoid duplicate Content-Transfer-Encoding MIME header on
messages with 8-bit text in headers. Problem noted by
Per Steinar Iversen of Oslo College. Fix from Per Hedeland
of Ericsson.
Avoid keeping maps locked longer than necessary when re-opening a
modified database map file. Problem noted by Chris Adams
of Renaissance Internet Services.
Resolving to the $#error mailer with a temporary failure code (e.g.,
$#error $@ tempfail $: "400 Temporary failure") will now
queue up the message instead of bouncing it.
Be more liberal in acceptable responses to an SMTP RSET command as
standard does not provide any indication of what to do when
something other than 250 is received. Based on a patch
from Steve Schweinhart of America Online.
New option TrustedUser allows to specify a user who can own
important files instead of root. This requires HASFCHOWN.
Fix USERDB conditional so compiling with NEWDB or HESIOD and
setting USERDB=0 works. Fix from Jorg Zanger of Schock.
Fix another instance (similar to one in 8.9.3) of a network failure
being mis-logged as "Illegal Seek" instead of whatever
really went wrong. From John Beck of Sun Microsystems.
$? tests also whether the macro is non-null.
Print an error message if a mailer definition contains an invalid
equate name.
New mailer equate /= to specify a directory to chroot() into before
executing the mailer program. Suggested by Igor Vinokurov.
New mailer equate W= to specify the maximum time to wait for the
mailer to return after sending all data to it.
Only free memory from the process list when adding a new process
into a previously filled slot. Previously, the memory was
freed at removal time. Since removal can happen in a
signal handler, this may leave the memory map in an
inconsistent state. Problem noted by Jeff A. Earickson and
David Cooley of Colby College.
When using the UserDB @hostname catch-all, do not try to lookup
local users in the passwd file. The UserDB code has
already decided the message will be passed to another host
for processing. Fix from Tony Landells of Burdett
Buckeridge Young Limited.
Support LDAP authorization via either a file containing the
password or Kerberos V4 using the new map options
'-ddistinguished_name', '-Mmethod', and '-Pfilename'. The
distinguished_name is who to login as. The method can be
one of LDAP_AUTH_NONE, LDAP_AUTH_SIMPLE, or
LDAP_AUTH_KRBV4. The filename is the file containing the
secret key for LDAP_AUTH_SIMPLE or the name of the Kerberos
ticket file for LDAP_AUTH_KRBV4. Patch from Booker Bense
of Stanford University.
The ldapx map has been renamed to ldap. The use of ldapx is
deprecated and will be removed in a future version.
If the result of an LDAP search returns a multi-valued attribute
and the map has the column delimiter set, it turns that
response into a delimiter separated string. The LDAP map
will traverse multiple entries as well. LDAP alias maps
automatically set the column delimiter to the comma.
Based on patch from Booker Bense of Stanford University and
idea from Philip A. Prindeville of Mirapoint, Inc.
Support return of multiple values for a single LDAP lookup. The
values to be returned should be in a comma separated string.
For example, `-v "email,emailother"'. Patch from
Curtis W. Hillegas of Princeton University.
Allow the use of LDAP for alias maps.
If no LDAP attributes are specified in an LDAP map declaration, all
attributes found in the match will be returned.
Prevent commas in quoted strings in the AliasFile value from
breaking up a single entry into multiple entries. This is
needed for LDAP alias file specifications to allow for
comma separated key and value strings.
Keep connections to LDAP server open instead of opening and closing
for each lookup. To reduce overhead, sendmail will cache
connections such that multiple maps which use the same
host, port, bind DN, and authentication will only result in
a single connection to that host.
Put timeout in the proper place for USE_LDAP_INIT.
Be more careful about checking for errors and freeing memory on
LDAP lookups.
Use asynchronous LDAP searches to save memory and network
resources.
Do not copy LDAP query results if the map's match only flag is set.
Increase portability to the Netscape LDAP libraries.
Change the parsing of the LDAP filter specification. '%s' is still
replaced with the literal contents of the map lookup key --
note that this means a lookup can be done using the LDAP
special characters. The new '%0' token can be used instead
of '%s' to encode the key buffer according to RFC 2254.
For example, if the LDAP map specification contains '-k
"(user=%s)"' and a lookup is done on "*", this would be
equivalent to '-k "(user=*)"' -- matching ANY record with a
user attribute. Instead, if the LDAP map specification
contains '-k "(user=%0)"' and a lookup is done on "*", this
would be equivalent to '-k "(user=\2A)"' -- matching a user
with the name "*".
New LDAP map flags: "-1" requires a single match to be returned, if
more than one is returned, it is equivalent to no records
being found; "-r never|always|search|find" sets the LDAP
alias dereference option; "-Z size" limits the number of
matches to return.
New option LDAPDefaultSpec allows a default map specification for
LDAP maps. The value should only contain LDAP specific
settings such as "-h host -p port -d bindDN", etc. The
settings will be used for all LDAP maps unless they are
specified in the individual map specification ('K'
command). This option should be set before any LDAP maps
are defined.
Prevent an NDBM alias file opening loop when the NDBM open
continually fails. Fix from Roy J. Mongiovi of Georgia
Tech.
Reduce memory utilization for smaller symbol table entries. In
particular, class entries get much smaller, which can be
important if you have large classes.
On network-related temporary failures, record the hostname which
gave error in the queued status message. Requested by
Ulrich Windl of the Universitat Regensburg.
Add new F=% mailer flag to allow for a store and forward
configuration. Mailers which have this flag will not attempt
delivery on initial recipient of a message or on queue runs
unless the queued message is selected using one of the
-qI/-qR/-qS queue run modifiers or an ETRN request. Code
provided by Philip Guenther of Gustavus Adolphus College.
New option ControlSocketName which, when set, creates a daemon
control socket. This socket allows an external program to
control and query status from the running sendmail daemon
via a named socket, similar to the ctlinnd interface to the
INN news server. Access to this interface is controlled by
the UNIX file permissions on the named socket on most UNIX
systems (see sendmail/README for more information). An
example control program is provided as contrib/smcontrol.pl.
Change the default values of QueueLA from 8 to (8 * numproc) and
RefuseLA from 12 to (12 * numproc) where numproc is the
number of processors online on the system (if that can be
determined). For single processor machines, this change
has no effect.
Don't return body of message to postmaster on "Too many hops" bounces.
Based on fix from Motonori Nakamura of Kyoto University.
Give more detailed DSN descriptions for some cases. Patch from
Motonori Nakamura of Kyoto University.
Logging of alias, forward file, and UserDB expansion now happens
at LogLevel 11 or higher instead of 10 or higher.
Logging of an envelope's complete delivery (the "done" message) now
happens at LogLevel 10 or higher instead of 11 or higher.
Logging of TCP/IP or UNIX standard input connections now happens at
LogLevel 10 or higher. Previously, only TCP/IP connections
were logged, and on at LogLevel 12 or higher. Setting
LogLevel to 10 will now assist users in tracking frequent
connection-based denial of service attacks.
Log basic information about authenticated connections at LogLevel
10 or higher.
Log SMTP Authentication mechanism and author when logging the sender
information (from= syslog line).
Log the DSN code for each recipient if one is available as a new
equate (dsn=).
Macro expand PostmasterCopy and DoubleBounceAddress options.
New "ph" map for performing ph queries in rulesets. More
information is available at
http://www-wsg.cso.uiuc.edu/sendmail/patches/.
Contributed by Mark Roth of the University of Illinois at
Urbana-Champaign.
Detect temporary lookup failures in the host map if looking up a
bracketed IP address. Problem noted by Kari Hurtta of the
Finnish Meteorological Institute.
Do not report a Remote-MTA on local deliveries. Problem noted by
Kari Hurtta of the Finnish Meteorological Institute.
When a forward file points to an alias which runs a program, run
the program as the default user and the default group, not
the forward file user. This change also assures the
:include: directives in aliases are also processed using
the default user and group. Problem noted by Sergiu
Popovici of DNT Romania.
Prevent attempts to save a dead.letter file for a user with
no home directory (/no/such/directory). Problem noted by
Michael Brown of Finnigan FT/MS.
Include message delay and number of tries when logging that a
message has been completely delivered (LogLevel of 10 or
above). Suggested by Nick Hilliard of Ireland Online.
Log the sender of a message even if none of the recipients were
accepted. If some of the recipients were rejected, it is
helpful to know the sender of the message.
Check the root directory (/) when checking a path for safety.
Problem noted by John Beck of Sun Microsystems.
Prevent multiple responses to the DATA command if DeliveryMode is
interactive and delivering to an alias which resolves to
multiple files.
Macros in the helpfile are expanded if the helpfile version is 2 or
greater (see below); the help function doesn't print the
version of sendmail any longer, instead it is placed in
the helpfile ($v). Suggested by Chuck Foster of UUNET
PIPEX. Additionally, comment lines (starting with #) are
skipped and a version line (#vers) is introduced. The
helpfile version for 8.10.0 is 2, if no version or an older
version is found, a warning is logged. The '#vers'
directive should be placed at the top of the help file.
Use fsync() when delivering to a file to guarantee the delivery to
disk succeeded. Suggested by Nick Christenson.
If delivery to a file is unsuccessful, truncate the file back to its
length before the attempt.
If a forward points to a filename for delivery, change to the
user's uid before checking permissions on the file. This
allows delivery to files on NFS mounted directories where
root is remapped to nobody. Problem noted by Harald
Daeubler of Universitaet Ulm.
purgestat and sendmail -bH purge only expired (Timeout.hoststatus)
host status files, not all files.
Any macros stored in the class $={persistentMacros} will be saved
in the queue file for the message and set when delivery
is attempted on the queued item. Suggested by Kyle Jones of
Wonderworks Inc.
Add support for storing information between rulesets using the new
macro map class. This can be used to store information
between queue runs as well using $={persistentMacros}.
Based on an idea from Jan Krueger of Unix-AG of University
of Hannover.
New map class arith to allow for computations in rules. The
operation (+, -, *, /, l (for less than), and =) is given
as key. The two operands are specified as arguments; the
lookup returns the result of the computation. For example,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -