Significant changes have been made to version 8.9.3 of sendmail, the version that was included in the SolarisTM 8 release. This chapter documents those changes, which have been incorporated into version 8.10.2+Sun of sendmail, the new version in this Solaris 8 4/01 release. The following lists the major sections in this chapter.
For information about Solaris Mail Services, see “Mail Services Topics” in the System Administration Guide, Volume 3.
For the most current man pages, use the man command. The Solaris 8 Update release man pages include new feature information not found in the Solaris 8 Reference Manual Collection.
The following list provides additional sources for information about sendmail.
Home page for sendmail – http://www.sendmail.org
FAQ for sendmail – http://www.sendmail.org/faq
README for new sendmail configuration files – http://www.sendmail.org/m4/readme.html
Fatbrain.com for books about sendmail, particularly the second edition of sendmail from O'Reilly & Associates, Inc. – http://www1.fatbrain.com/catalogs/computing/subjects.asp?SubjectCode=OML
This section contains information on the following topics.
New and Revised Configuration File Options and Related Topics
New and Revised m4 Configuration Macros for sendmail and Related Topics
The following table describes new command-line options for sendmail.
Table 21–1 New Command-Line Options for sendmail
Option |
Description |
---|---|
-G |
Indicates that the message being submitted from the command line is for relaying, not for initial submission. The message is rejected if the addresses are not fully qualified. No canonicalization is done. As noted in the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org, improperly formed messages might be rejected in future releases. |
-L tag |
Sets the identifier used for syslog messages to the supplied tag. |
-U |
As noted in the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org, this option is deprecated. Mail user agents should begin using the -G argument to indicate that this is a relay submission (the inverse of the -U argument). |
This section contains a table of new and revised configuration file options and information on the following related topics.
The sendmail options described in the following table are typically declared in the configuration file. However, you can also declare them from the command line. When you use the command line, sendmail relinquishes its root permissions to avoid a security risk.
When you declare these options, use one of the following syntaxes.
O OptionName=argument # for the configuration file -OOptionName=argument # for the command line define(`m4Name',argument) # for m4 configuration |
The following table describes new and revised options for sendmail.
Table 21–2 New and Revised Options for sendmail
Option |
Description |
---|---|
ClientPortOption |
For details, see New ClientPortOptions Option. |
ControlSocketName |
m4 name: confCONTROL_SOCKET_NAME Argument: filename. The recommended socket name is /var/spool/mqueue/.smcontrol. For security, this UNIX® domain socket must be in a directory that is accessible only by root. When set, this new option creates a control socket for daemon management. This option allows an external program to control and query the status of the running sendmail daemon by way of a named socket. The socket is similar to the ctlinnd interface to the INN news server. If not set, no control socket is available. |
DaemonPortOptions |
For details, see Changes to DaemonPortOptions Option. |
DataFileBufferSize |
m4 name: confDF_BUFFER_SIZE Argument: number The new option controls the maximum size (in bytes) of a memory-buffered data (df) file before a disk-based file is used. The default is 4096 bytes. No changes should be necessary for the Solaris operating environment. |
DeadLetterDrop |
m4 name: confDEAD_LETTER_DROP Argument: filename This new option, which you should not need to set, defines the location of the system-wide dead.letter file, formerly hard-coded to /usr/tmp/dead.letter. |
DontBlameSendmail |
A new argument called, NonRootSafeAddr, has been added. When sendmail does not have enough privileges to run a .forward program or deliver to a file as the owner of that file, addresses are marked unsafe. Furthermore, if RunAsUser is set, users cannot use programs or deliver to files in their .forward programs. To resolve these problems, use the new argument, NonRootSafeAddr. |
DontProbeInterfaces |
m4 name: confDONT_PROBE_INTERFACES Argument: true or false. The default is false. If it is set, sendmail does not insert the names and addresses of any local interfaces into class w ($=w). Therefore, you must also include some support for these addresses (for example, in a mailertable entry). Otherwise, mail to these interface addresses bounces with a configuration error. However, this option, when it is set, speeds up your startup. |
LDAPDefaultSpec |
m4 name: confLDAP_DEFAULT_SPEC Argument: Class switch with appropriate definition (for example, -hhost, -pport, -dbind DN). The new option allows a default map specification for LDAP maps. The assigned default settings are used for all LDAP maps unless other individual map specifications are made with the K command. Set this option before defining any LDAP maps. |
MaxAliasRecursion |
m4 name: confMAX_ALIAS_RECURSION Argument: number The option specifies the maximum depth of alias recursion. The defaults are as follows. 50 for a V1/Sun configuration file, which is not recommended for use 10 for any other version of the configuration file |
MaxHeadersLength |
m4 name: confMAX_HEADERS_LENGTH Argument: number The option specifies a maximum length for the sum of all headers and can be used to prevent a denial-of-service attack. The default is 32768. Note that a warning is issued if a value less than 16384 is used. You should not need to change the default value for the Solaris operating environment. |
MaxMimeHeaderLength |
m4 name: confMAX_MIME_HEADER_LENGTH Argument: number The option sets the maximum length of certain MIME header field values to x number of characters. Also, for parameters within headers, you can specify a maximum length of y. The combined values look like x/y. If /y is not specified, half of x is used. If no values are set, the default is 0, which means no checks are made. This option is intended to protect mail user agents from buffer-overflow attacks. The suggested values are in the range of 256/128 to 1024/256. A warning is issued if values less than 128/40 are used. |
MaxRecipientsPerMessage |
Argument: number If it is set, this option allows no more than the specified number of recipients in an SMTP envelope. The minimum argument is 100. This option can still be declared from both the command line and the configuration file. However, normal users can now set it from the command line to allow the override of messages submitted through sendmail -bs. In this instance, sendmail does not relinquish its root privileges. |
PidFile |
m4 name: confPID_file Argument: See Additional Arguments for the PidFile and ProcessTitlePrefix Options. The new option defines the location of the pid file. The file name is macro-expanded before it is opened. The default is /var/run/sendmail.pid. |
PrivacyOptions |
For details, see Changes to the PrivacyOptions Option. |
ProcessTitlePrefix |
m4 name: confPROCESS_TITLE_PREFIX Argument: See Additional Arguments for the PidFile and ProcessTitlePrefix Options. The new option specifies a prefix string for the process title that is shown in /usr/ucb/ps auxww listings. The string is macro-processed. No changes should be necessary for the Solaris operating environment. |
QueueLA |
m4 name: confQUEUE_LA Argument: number The default value has changed from eight to eight times the number of processors online when the system starts. For single-processor machines, this change has no effect. Changing this value overrides the default and prevents the number of processors from being considered. Therefore, the effect of any value changes should be well understood. |
QueueSortOrder |
m4 name: confQUEUE_SORT_ORDER The host argument now reverses the host name before sorting, which means domains are grouped to run through the queue together. This improvement provides better opportunities for use of the connection cache, if available. The new filename argument sorts the queue by file name, which avoids the opening and reading of each queue file when preparing to run the queue. |
RefuseLA |
m4 name: confREFUSE_LA Argument: number The default value has changed from 12 to 12 times the number of processors online when the system starts. For single-processor machines, this change has no effect. A change of this value overrides the default and prevents the number of processors from being considered. Therefore, the effect of any value changes should be well understood. |
RrtImpliesDsn |
m4 name: confRRT_IMPLIES_DSN Argument: true or false If the new option is set, a “Return-Receipt-To:” header causes the request of a delivery status notification (DSN), which is sent to the envelope sender, not to the address given in the header. |
SendMimeErrors |
m4 name: confMIME_FORMAT_ERRORS Argument: true or false The default is now true. |
Timeout |
For details, see Changes to the Timeout Option. |
TrustedUser |
m4 name: confTRUSTED_USER Argument: user name or user numeric ID The new option allows you to specify a user name (instead of root) to own important files. If this option is set, generated alias databases and the control socket—if it is configured—are automatically owned by this user. This option requires HASFCHOWN. For information about HASFCHOWN, see New Compile Flags for sendmail. Only TrustedUser, root, and class t ($=t) users can rebuild the alias map. |
XscriptFileBufferSize |
m4 name: confXF_BUFFER_SIZE Argument: number The new option controls the maximum size (in bytes) of a memory-buffered transcript (xf) file before a disk-based file is used. The default is 4096 bytes. No changes should be necessary for the Solaris operating environment. |
The following table describes deprecated configuration file options for sendmail.
Table 21–3 Deprecated Configuration File Options for sendmail
Option |
Description |
---|---|
AutoRebuildAliases |
Because a denial-of-service attack could occur if this option is set, it has been deprecated. Refer to the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org. A user could kill the sendmail process while the aliases file is being rebuilt and leave the file in an inconsistent state. |
MeToo |
This option, which now defaults to True, has been deprecated. Refer to the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org. |
The new ClientPortOptions option is for outgoing connections and is similar to the DaemonPortOptions option. This option sets the client SMTP options, which are a sequence of key=value pairs. To declare this option, use one of the following syntaxes. (For formatting purposes the example includes two pairs. However, you can apply one or more pairs.
O ClientPortOptions=pair,pair # for the configuration file -OClientPortOptions=pair,pair # for the command line define(`confCLIENT_OPTIONS',`pair,pair') # note the revised name # for m4 configuration |
The following table describes the new keys for this option.
Table 21–4 New Keys for ClientPortOptions
Key |
Description |
---|---|
Addr |
Specifies the address mask. The value can be a numeric address in dot notation or a network name. If the pair is omitted, the default is INADDR_ANY, which allows connections from any network. |
Family |
Specifies the address family. The key's default is inet for AF_INET. Other values are inet6 for AF_INET6, iso for AF_ISO, ns for AF_NS, and x.25 for AF_CCITT. |
Listen |
Specifies the size of the listen queue. The key defaults to 10. No changes should be necessary for the Solaris operating environment. |
Port |
Specifies the name and number of the listening port. The key defaults to smtp. |
RcvBufSize |
Specifies the size of the TCP/IP send buffer. The key has no default value, which means that no size specifications are automatically made. If the option is set to a value greater than zero, then that value is used. You should not need to limit the size of this buffer for the Solaris operating environment. |
Modifier |
Specifies flags for sendmail. The flag, h, uses the name that corresponds to the outgoing interface address for the HELO or EHLO commands, whether it was chosen by the connection parameter or by the default. |
The following tables describe two new keys for the option and some specific values for one of the new keys, Modifier. To declare this option, use one of the following syntaxes. In the example, pair refers to key=value. For formatting purposes, the example includes two pairs. However, you can apply one or more pairs.
O DaemonPortOptions=pair,pair # for the configuration file -ODaemonPortOptions=pair,pair # for the command line define(`confDAEMON_OPTIONS',`pair,pair') # note the revised name # for m4 configuration |
To avoid security risks, sendmail relinquishes its root permissions when you set this option from the command line.
The following table describes two new keys for the DaemonPortOptions option.
Table 21–5 New Keys for DaemonPortOptions
Key |
Description |
---|---|
Name |
Specifies a user-definable name for sendmail and is used for error messages and for logging. The default is MTA. |
Modifier |
Specifies values for sendmail that can be listed in a sequence without delimiters. For a list of values, see Table 21–6. |
The following table describes the values for the new Modifier key.
Table 21–6 Modifier Key Values for DaemonPortOptions
Value |
Description |
---|---|
C |
Does not perform host name canonification. |
E |
Disallows the ETRN command. |
a |
Requires authentication. |
b |
Binds to the interface that receives the mail. |
c |
Performs host name canonification. Use this value only in configuration file declarations. |
f |
Requires fully qualified host names. Use this value only in configuration file declarations. |
h |
Uses the interface's name for the outgoing HELO command. |
u |
Allows unqualified addresses. Use this value only in configuration file declarations. |
The following table describes additional macro-processed arguments for the PidFile and ProcessTitlePrefix options. For more information about these options, see Table 21–2.
Table 21–7 Arguments for the PidFile and ProcessTitlePrefix Options
Macro |
Description |
---|---|
${daemon_addr} |
Provides daemon address (for example, 0.0.0.0) |
${daemon_family} |
Provides daemon family (for example, inet, inet6, and so forth) |
${daemon_info} |
Provides daemon information (for example, SMTP+queueing@00:30:00) |
${daemon_name} |
Provides daemon name (for example, MSA) |
${daemon_port} |
Provides daemon port (for example, 25) |
${queue_interval} |
Provides queue run interval (for example, 00:30:00) |
New and revised arguments for PrivacyOptions (popt) are described in the following table. You can declare this option from the command line without sendmail relinquishing its root privilege. To declare this sendmail option, use one of the following syntaxes.
O PrivacyOptions=argument # for the configuration file -OPrivacyOptions=argument # for the command line define(`confPRIVACY_FLAGS',`argument') # note the revised name # for m4 configuration |
The following table provides descriptions of new and revised arguments for the PrivacyOptions option.
Table 21–8 New and Revised Arguments for PrivacyOptions
Argument |
Description |
---|---|
goaway |
The noetrn and noreceipts flags are no longer accepted. |
nobodyreturn |
The argument instructs sendmail not to include the body of the original message in delivery status notifications. |
noreceipts |
When the argument is set, delivery status notification (DSN) is not announced. |
The following table provides information about the changes to the Timeout option. Specifically, this sendmail option has some new keywords and a new value for ident. In the Solaris operating environment, you should not need to change the default values for the keywords that are listed in the table. However, if you choose to make a change, use the keyword=value syntax. The value is a time interval. Refer to the following examples.
O Timeout.keyword=value # for the configuration file -OTimeout.keyword=value # for the command line define(`m4_name', value) # for m4 configuration |
To avoid security risks, sendmail relinquishes its root permissions when you set this option from the command line.
Keyword |
Default Value |
Description |
---|---|---|
control |
2m |
m4 name: confTO_CONTROL Limits the total time that is dedicated to satisfying a control socket request. |
ident |
5s |
m4 name: confTO_IDENT Defaults to 5 seconds—instead of 30 seconds—to prevent the common delays that are associated with mailing to a site that drops IDENT packets. |
queuereturn |
5d |
m4 name: confTO_QUEUERETURN Includes the value now, which immediately bounces entries from the queue without a delivery attempt. |
resolver.retrans |
varies |
m4 name: confTO_RESOLVER_RETRANS Sets the resolver's retransmission time interval (in seconds), which applies to resolver.retrans.first and resolver.retrans.normal. |
resolver.retrans.first |
varies |
m4 name: confTO_RESOLVER_RETRANS_FIRST Sets the resolver's retransmission time interval (in seconds) for the first attempt to deliver a message. |
resolver.retrans.normal |
varies |
m4 name: confTO_RESOLVER_RETRANS_NORMAL Sets the resolver's retransmission time interval (in seconds) for all resolver lookups, except the first delivery attempt. |
resolver.retry |
varies |
m4 name: confTO_RESOLVER_RETRY Sets the number of times to retransmit a resolver query, which applies to Timeout.resolver.retry.first and Timeout.resolver.retry.normal. |
resolver.retry.first |
varies |
m4 name: confTO_RESOLVER_RETRY_FIRST Sets the number of times to retransmit a resolver query for the first attempt to deliver a message. |
resolver.retry.normal |
varies |
m4 name: confTO_RESOLVER_RETRY_NORMAL Sets the number of times to retransmit a resolver query for all resolver lookups, except the first delivery attempt. |
The following table describes new macros that are reserved for use by the sendmail program. Their values are assigned internally.
Table 21–10 Defined Macros for sendmail
Macro |
Description |
---|---|
${auth_authen}, ${auth_type}, ${auth_author} |
Holds the client's authentication credentials, the mechanism used for authentication, and the authorization identity—the AUTH= parameter, if supplied. |
${client_resolve} |
Holds the result of the resolve call for ${client_name}: OK, FAIL, FORGED, or TEMP. |
${deliveryMode} |
Specifies the current delivery mode sendmail is using, instead of the value of the DeliveryMode option. |
${dsn_notify}, ${dsn_envid}, ${dsn_ret} |
Holds the corresponding DSN parameter values. |
${if_addr} |
Provides the interface's address for the incoming connection if the interface does not belong to the loopback net. Is especially useful for virtual hosting. |
${if_name} |
Provides the interface's host name for the incoming connection and is especially useful for virtual hosting. |
${load_avg} |
Checks and reports the current average number of jobs in the run queue. |
${msg_size} |
Holds the value of the message size (SIZE=parameter) in an ESMTP dialogue before the message has been collected. Thereafter, the macro holds the message size as computed by sendmail and is used in check_compat. |
${ntries} |
Holds the number of delivery attempts. |
${rcpt_mailer}, ${rcpt_host}, ${rcpt_addr}, ${mail_mailer}, ${mail_host}, ${mail_addr} |
Holds the results of parsing the RCPT and MAIL arguments—that is, the resolved RHS triplet from the mail delivery agent ($#mailer), the host ($@host), and the user ($:addr). |
The following table describes new macros that are used to build the sendmail configuration file.
Table 21–11 New Macros Used to Build the sendmail Configuration File
Flag |
Description |
---|---|
LOCAL_MAILER_EOL |
Overrides the default end-of-line string for the local mailer. |
LOCAL_MAILER_FLAGS |
Adds Return-Path: header by default. |
MAIL_SETTINGS_DIR |
Contains the path (including the trailing slash) for the mail settings directory. |
MODIFY_MAILER_FLAGS |
Improves the *_MAILER_FLAGS. This macro sets, adds, or deletes flags. |
RELAY_MAILER_FLAGS |
Defines additional flags for the relay mailer. |
USENET_MAILER_FLAGS |
Is not a local mailer. Therefore, the l flag has been removed. |
This section contains a table of new and revised m4 configuration macros for sendmail and descriptions of the following.
Generally, the syntax for declaring the macros that are described in the following table is as shown.
symbolic_name(`value') |
m4 Macro |
Description |
---|---|
FEATURE() declarations |
For details, refer to New and Revised FEATURE() Declarations. |
LOCAL_DOMAIN() |
This macro adds entries to class w ($=w). |
MASQUERADE_EXCEPTION() |
A new macro that defines hosts or subdomains that cannot be masqueraded. |
SMART_HOST() |
You can now use this macro for bracketed addresses, such as user@[host]. |
TRUST_AUTH_MECH() |
If SMTP AUTH is used, then relaying is allowed for any user who is authenticated as a "trusted" mechanism. This means the mechanism has been defined in the TRUST_AUTH_MECH(`list_of_mechanisms') declaration. |
VIRTUSER_DOMAIN() or VIRTUSER_DOMAIN_FILE() |
When these macros are used, include $={VirtHost} in $=R. As a reminder, $=R is the set of host names that are allowed to relay. |
The following table describes new and revised keywords for m4 FEATURE() declarations. To declare a feature in a .mc file, use the syntax from the following example.
FEATURE(`key_word', `argument') |
The following table describes which keywords need arguments.
Table 21–13 New and Revised Keywords for FEATURE() Declarations
The MAILER() declaration specifies support for delivery agents. To declare a delivery agent, use the following syntax.
MAILER(`symbolic_name') |
In this new version of sendmail, the MAILER(`smtp') declaration now includes an additional mailer, dsmtp, which provides on-demand delivery by using the F=% mailer flag. The dsmtp mailer definition uses the new DSMTP_MAILER_ARGS, which defaults to IPC $h.
The following table describes new flags that are used to compile sendmail. If your configuration requires other flags, you need to download the source and recompile the binary yourself. You can find information about this process at http://www.sendmail.org.
Table 21–14 New Flags Used to Compile sendmail
Flag |
Description |
---|---|
HASFCHOWN |
Supports the use of fchown(2). |
HASRANDOM |
Supports the use of rand(3C), instead of random(3C). |
MAXINTERFACES |
Indicates the number of interfaces to read when sendmail probes for host names and IP addresses for class w ($=w). The default value is 512. |
The following table describes new delivery agent flags, which by default are not set. These single-character flags are Boolean. You can set or unset a flag by including or excluding it in the F= statement of your configuration file, as is shown in the following example.
Mlocal, P=/usr/lib/mail.local, F=lsDFMAw5:/|@qSXfmnz9, S=10/30, R=20/40, Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990, Msmtp8, P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990, Mrelay, P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n, L=2040, |
Flag |
Description |
---|---|
% |
Mailers that use this flag do not attempt delivery to the initial recipient of a message or to queue runs unless the queued message is selected by using an ETRN request or one of the following queue options: -qI, -qR, or -qS. |
6 |
This flag allows mailers to strip headers to seven bit. |
The following table describes new equates that you can use with the M delivery agent definition command. The following syntax shows you how to append new equates or new arguments to those that already exist in the configuration file.
Magent_name, equate, equate, ... |
The following example includes the new W= equate, which specifies the maximum time to wait for the mailer to return after all data has been sent.
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, W=2m |
When you modify the definition of a value for m4 configuration, use the syntax that is provided in the following example.
define(`SMTP_MAILER_MAXMSGS', `1000') |
Typically, you modify the equate definitions in the mailer directory only when you fine tune.
The following list provides details about new queue features.
The update supports multiple queue directories. To use multiple queues, supply a QueueDirectory option value in the configuration file that ends with an asterisk (*), as is shown in the following example.
O QueueDirectory=/var/spool/mqueue/q* |
The option value, /var/spool/mqueue/q*, uses all of the directories (or symbolic links to directories) that begin with “q” as queue directories. Do not change the queue directory structure while sendmail is running. Queue runs create a separate process for running each queue unless the verbose flag (-v) is used on a non-daemon queue run. The new items are randomly assigned to a queue.
The new queue file-naming system uses file names that are guaranteed to be unique for 60 years. This system allows queue IDs to be assigned without complex file-system locking and makes it easy for queued items to be moved between queues.
The following list describes changes in the use of the Lightweight Directory Access Protocol (LDAP) with sendmail.
As noted in the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org, the LDAPX map has been renamed to LDAP. Use the following syntax for LDAP.
Kldap ldap options |
The update supports the return of multiple values for a single LDAP lookup. Place the values to be returned in a comma-separated string with the -v option, as is shown.
Kldap ldap -v"mail,more_mail" |
If no LDAP attributes are specified in an LDAP map declaration, all attributes that are found in the match are returned.
This version prevents commas in quoted key and value strings in the specifications of the LDAP alias file from breaking up a single entry into multiple entries.
Instead of using the %s token to parse an LDAP filter specification, you can use the new token, %0, to encode the key buffer. The %0 token applies a literal meaning to LDAP special characters.
The following example shows how these tokens differ for a lookup on “*.”
Table 21–17 Comparison of Tokens
LDAP Map Specification |
Specification Equivalent |
Result |
---|---|---|
-k"uid=%s" |
-k"uid=*" |
Matches any record with a user attribute |
-k"uid=%0" |
-k"uid=\2A" |
Matches a user with the name “*” |
The following table describes new LDAP map flags.
Table 21–18 New LDAP Map Flags
Flag |
Description |
---|---|
-1 |
Requires a single match to be returned. If more than one match is returned, the results are the equivalent of no records being found. |
-r never|always|search|find |
Sets the LDAP alias dereference option. |
-Z size |
Limits the number of matches to return. |
The old [TCP] built-in mailer is now deprecated. Use the P=[IPC] (interprocessor communications) built-in mailer instead. The [IPC] built-in mailer now allows delivery to a UNIX domain socket on systems that support it. You can use this mailer with LMTP delivery agents that listen on a named socket. An example mailer might look like the following.
Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /var/run/lmtpd |
The first mailer argument in the [IPC] mailer is now checked for a legitimate value. The following table provides possible values for the first mailer argument.
Table 21–19 Possible Values for the First Mailer Argument
Value |
Description |
---|---|
A=FILE |
Used for UNIX domain socket delivery |
A=TCP |
Used for TCP/IP connections |
A=IPC |
Scheduled for deprecation in a future version |
The following table lists the new rule sets and describes what they do.
Table 21–20 New Rule Sets
Set |
Description |
---|---|
check_eoh |
Correlates information that is gathered between headers and checks for missing headers. This rule set is used with the macro storage map and is called after all of the headers have been collected. |
check_etrn |
Uses the ETRN command (such as check_rcpt uses RCPT). |
check_expn |
Uses the EXPN command (such as check_rcpt uses RCPT). |
check_vrfy |
Uses the VRFY command (such as check_rcpt uses RCPT). |
trust_auth |
Determines whether a given AUTH= parameter of the MAIL command should be trusted. |
The following list describes new rule set features.
Numbered rule sets are also named, but they can still be accessed by their numbers.
The H header configuration file command allows for a default rule set to be specified for header checks. This rule set is called only if the individual header has not been assigned its own rule set.
Comments in rule sets (that is, text within parentheses) are not removed if the configuration file version is nine or greater. For example, the following rule matches the input token (1), but does not match the input token.
R$+ (1) $@ 1 |
sendmail accepts the SMTP RSET command even when it rejects commands because of TCP wrappers or the check_relay rule set.
You receive a warning if you set the OperatorChars option multiple times. Also, do not set OperatorChars after the rule sets are defined.
The name of the rule set, as well as its lines, are ignored if an invalid rule set is declared. The rule set lines will not be added to S0.
Please note the new locations for the following files.
The helpfile is now located in /etc/mail/helpfile. The old name (/etc/mail/sendmail.hf) has a symbolic link that points to the new name.
The trusted-users file is now located in /etc/mail/trusted-users. During an upgrade, if the old name (/etc/mail/sendmail.ct) is detected, but not the new name, then a hard link from the old name to the new name is created. Otherwise, nothing is done. The default content is root.
The local-host-names file is now located in /etc/mail/local-host-names. During an upgrade, if the old name (/etc/mail/sendmail.cw) is detected, but not the new name, then a hard link from the old name to the new name is created. Otherwise, nothing is done. The default content is zero length.
The following table describes the new command-line options for the mail.local program, which is used by sendmail as a delivery agent for local mail.
Table 21–21 New Command-Line Options for mail.local
Option |
Description |
---|---|
-7 |
Prevents the local mail transfer protocol (LMTP) mode from advertising 8BITMIME support in the LHLO response |
-b |
Causes a permanent error instead of a temporary error if a mailbox exceeds its quota |
mail.local is the default for LMTP mode. However, for this release, if you choose to use mail.local as the local delivery agent without being in LMTP mode, you need to do one of the following to set the S flag.
Use the following syntax for the configuration file.
MODIFY_MAILER_FLAGS(`LOCAL', `+S') # for the configuration file |
Alternately, perform the following two steps for m4 configuration.
define(`MODIFY_MAILER_FLAGS', `S')dnl # first step MAILER(local)dnl # second step |
MODIFY_MAILER_FLAGS is a new macro that is used to build the configuration file. For details, refer to New Macros Used to Build the sendmail Configuration File.
The mailstats program, which provides statistics on mailer usage, comes with the sendmail program. The following table describes new options in mailstats.
Table 21–22 New mailstats Options
Option |
Description |
---|---|
-C filename |
Specifies a sendmail configuration file |
-p |
Provides clear statistics in a program-readable mode |
The makemap command creates database files for sendmail. The following table describes new makemap options. When you declare options, use the following syntax.
makemap options class filename |
When you use the preceding syntax, remember the following.
options are preceded by a dash (for example, -dN).
class specifies the type of database (for example, btree, dbm, or hash).
filename specifies the full path (or relative name) for the database file.
Option |
Description |
---|---|
-C |
Uses the specified sendmail configuration file for finding the TrustedUser option |
-c |
Uses the specified hash and btree cache size |
-e |
Allows an empty value from the right-hand side (RHS) |
-l |
Lists supported map types |
-u |
Dumps (unmaps) the contents of the database to standard output |
If makemap is running as root, the ownership of the generated maps is automatically changed to the TrustedUser as specified in the sendmail configuration file. For more information about the TrustedUser option, refer to Table 21–2.
The following list describes other changes and features of interest.
As noted in the RELEASE NOTES that are part of the sendmail distribution available from ftp://ftp.sendmail.org, the XUSR SMTP command is deprecated. Mail user agents should begin using RFC 2476 Message Submission for initial user message submission.
The Content-Length: header is no longer provided in messages that are piped to programs with any version of the Sun configuration files. However, this header is still provided for appended messages and ordinary mailbox deliveries that use any version of the Sun configuration files.
sendmail now accepts connections when disk space is low, but in such situations it allows only ETRN commands.
Entries in the alias file can be continued by putting a backslash directly before the new line.
The timeout for sending a message by way of SMTP has been changed to check for delivery progress every five minutes. This change detects an inability to send information more quickly and reduces the number of processes that are waiting to time out.
You can now copy the contents of a class to another class by using the syntax of the following example.
C{Dest} $={Source} |
In the preceding example, all items in class $={Source} are copied into class $={Dest}.
The maps are no longer optional by default. Also, if there is a problem with a map, you receive an error message.
Canonification is no longer attempted for any host or domain in class P ($=P).
The = equate is not included in an option expansion if no value is associated with the option.
Route addresses are stripped. For example, <@a,@b,@c:user@d> is converted to <user@d>.