Skip Navigation Links | |
Exit Print View | |
Managing sendmail Services in Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library |
Oracle Solaris Version of sendmail
Flags Used and Not Used to Compile sendmail
MILTER, Mail Filter API for sendmail
Versions of the Configuration File
Software and Hardware Components of Mail Services
Simple Mail Transfer Protocol (SMTP) Mailers
UNIX-to-UNIX Copy Program (UUCP) Mailers
Name Service Domain Name and Mail Domain Name
Typical Format for Mail Addresses
Route-Independent Mail Addresses
Mail Service Programs and Files
Enhancement for vacation Utility
Contents of the /usr/bin Directory
Contents of the /etc/mail Directory
Contents of the /etc/mail/cf Directory
Contents of the /usr/lib Directory
Other Files Used for Mail Services
sendmail and Its Rerouting Mechanisms
Mail Addresses and Mail Routing
Interactions of sendmail With Name Services
Mail Domains and Name Service Domains
Requirements for Name Services
Interactions of NIS and sendmail
Interactions of sendmail With NIS and DNS
Changes in Version 8.14 of sendmail
Changes in Version 8.13 of sendmail
Support for Running SMTP With TLS in Version 8.13 of sendmail
Configuration File Options for Running SMTP With TLS
Macros for Running SMTP With TLS
Rule Sets for Running SMTP With TLS
Security Considerations Related to Running SMTP With TLS
Additional Command-Line Options in Version 8.13 of sendmail
Additional and Revised Configuration File Options in Version 8.13 of sendmail
Additional and Revised FEATURE() Declarations in Version 8.13 of sendmail
Changes From Version 8.12 of sendmail
Support for TCP Wrappers From Version 8.12 of sendmail
submit.cf Configuration File From Version 8.12 of sendmail
Functions That Distinguish sendmail.cf From submit.cf
Functional Changes From Version 8.12 of sendmail
Additional or Deprecated Command-Line Options From Version 8.12 of sendmail
Additional Arguments for the PidFile and ProcessTitlePrefix Options From Version 8.12 of sendmail
Additional Defined Macros From Version 8.12 of sendmail
Additional Macros From Version 8.12 of sendmail
Additional MAX Macros From Version 8.12 of sendmail
Additional and Revised m4 Configuration Macros From Version 8.12 of sendmail
Changes to the FEATURE() Declaration From Version 8.12 of sendmail
Changes to the MAILER() Declaration From Version 8.12 of sendmail
Additional Delivery Agent Flags From Version 8.12 of sendmail
Additional Equates for Delivery Agents From Version 8.12 of sendmail
Additional Queue Features From Version 8.12 of sendmail
Changes for LDAP From Version 8.12 of sendmail
Change to the Built-In Mailer From Version 8.12 of sendmail
Additional Rule Sets From Version 8.12 of sendmail
This section contains information about the following topics.
Additional or Deprecated Command-Line Options From Version 8.12 of sendmail
Additional Arguments for the PidFile and ProcessTitlePrefix Options From Version 8.12 of sendmail
Additional and Revised m4 Configuration Macros From Version 8.12 of sendmail
Changes to the FEATURE() Declaration From Version 8.12 of sendmail
Changes to the MAILER() Declaration From Version 8.12 of sendmail
Additional Delivery Agent Flags From Version 8.12 of sendmail
Additional Equates for Delivery Agents From Version 8.12 of sendmail
TCP wrappers provide a way of implementing access controls by checking the address of a host requesting a particular network service against an access control list (ACL). Requests are granted or denied, accordingly. Besides providing this access control mechanism, TCP wrappers also log host requests for network services, which is a useful monitoring function. Examples of network services that might be placed under access control include rlogind, telnetd, and ftpd.
Starting with version 8.12, sendmail enables the use of TCP wrappers. This check does not bypass other security measures. By enabling TCP wrappers in sendmail, a check has been added to validate the source of a network request before the request is granted. See the hosts_access(4) man page.
Note - Support for TCP wrappers in inetd(1M) and sshd(1M) started with the Solaris 9 release.
For information about ACLs, see Using Access Control Lists to Protect UFS Files in Oracle Solaris 11.1 Administration: Security Services.
Starting with version 8.12, sendmail includes an additional configuration file, /etc/mail/submit.cf. This file, submit.cf, is used to run sendmail in mail-submission program mode instead of daemon mode. Mail-submission program mode, unlike daemon mode, does not require root privilege, so this new paradigm provides better security.
See the following list of functions for submit.cf:
sendmail uses submit.cf to run in mail-submission program (MSP) mode, which submits email messages and can be started by programs (such as mailx), as well as by users. Refer to the descriptions of the -Ac option and the -Am option in the sendmail(1M) man page.
submit.cf is used in the following operating modes:
-bm, which is the default operating mode
-bs, which uses standard input to run SMTP
-bt, which is the test mode that is used to resolve addresses
sendmail, when using submit.cf, does not run as an SMTP daemon.
sendmail, when using submit.cf, uses /var/spool/clientmqueue, the client-only mail queue, which holds messages that were not delivered to the sendmail daemon. Messages in the client-only queue are delivered by the client “daemon,” which is really acting as a client queue runner.
By default, sendmail uses submit.cf periodically to run the MSP queue (otherwise known as the client-only queue), /var/spool/clientmqueue.
/usr/lib/sendmail -Ac -q15m
Note the following:
Starting with the Solaris 9 release, submit.cf is provided automatically.
submit.cf does not require any planning or preliminary procedures prior to the installation of the Solaris 9 release or a more recent release.
Unless you specify a configuration file, sendmail automatically uses submit.cf as required. Basically, sendmail knows which tasks are appropriate for submit.cf and which tasks are appropriate for sendmail.cf.
The sendmail.cf configuration file is for the daemon mode. When using this file, sendmail is acting as a mail transfer agent (MTA), which is started by root.
/usr/lib/sendmail -L sm-mta -bd -q1h
See the following list of other distinguishing functions for sendmail.cf:
By default, sendmail.cf accepts SMTP connections on ports 25 and 587.
By default, sendmail.cf runs the main queue, /var/spool/mqueue.
With the addition of submit.cf, the following functional changes have occurred:
Starting with version 8.12 of sendmail, only root can run the mail queue. For further details, refer to the changes that are described in the mailq(1) man page. For new task information, refer to Administering the Queue Directories (Task Map).
The mail-submission program mode runs without root privilege, which might prevent sendmail from having access to certain files (such as the .forward files). Therefore, the -bv option for sendmail could give the user misleading output. No workaround is available.
Prior to sendmail version 8.12, if you were not running sendmail in daemon mode, you would only prevent the delivery of inbound mail. Starting with sendmail version 8.12, if you are not running the sendmail daemon with the default configuration, you also prevent the delivery of outbound mail. The client queue runner (also known as the mail submission program) must be able to submit mail to the daemon on the local SMTP port. If the client queue runner tries to open an SMTP session with the local host and the daemon is not listening on the SMTP port, the mail remains in the queue. The default configuration does run a daemon, so this problem does not occur if you are using the default configuration. However, if you have disabled your daemon, refer to How to Manage Mail Delivery by Using an Alternate Configuration of sendmail.cf for a way to resolve this problem.
The following table describes additional or deprecated command-line options for sendmail. Other command-line options are described in the sendmail(1M) man page.
Table 3-18 Additional or Deprecated Command-Line Options From Version 8.12 of sendmail
|
The following table describes additional macro-processed arguments for the PidFile and ProcessTitlePrefix options. For more information about these options, see the sendmail(1M) man page.
Table 3-19 Arguments for the PidFile and ProcessTitlePrefix Options
|
The following table describes additional macros that are reserved for use by the sendmail program. The macros' values are assigned internally. For more information, refer to the sendmail(1M) man page.
Table 3-20 Additional Defined Macros for sendmail
|
In this section, you can find a table that describes the additional macros that are used to build the sendmail configuration file.
Table 3-21 Additional Macros Used to Build the sendmail Configuration File
|
Use the following macros to configure the maximum number of commands that can be received before sendmail slows its delivery. You can set these MAX macros at compile time. The maximum values in the following table also represent the current default values.
Table 3-22 Additional MAX Macros
|
Note - You can disable a macro's check by setting the macro's value to zero.
This section contains a table of additional and revised m4 configuration macros for sendmail. Use the following syntax to declare these macros.
symbolic-name(`value')
If you need to build a new sendmail.cf file, refer to Changing the sendmail Configuration in Chapter 2, Mail Services (Tasks).
Table 3-23 Additional and Revised m4 Configuration Macros for sendmail
|
Refer to the following tables for information about the specific changes to the FEATURE() declarations.
To use the new and revised FEATURE names, use the following syntax.
FEATURE(`name', `argument')
If you need to build a new sendmail.cf file, refer to Changing the sendmail Configuration in Chapter 2, Mail Services (Tasks).
Table 3-24 Additional and Revised FEATURE() Declarations
|
The following FEATURE() declarations are no longer supported.
Table 3-25 Unsupported FEATURE() Declarations
|
The MAILER() declaration specifies support for delivery agents. To declare a delivery agent, use the following syntax.
MAILER(`symbolic-name')
Note the following changes.
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.
Numbers for rule sets that are used by MAILERs have been removed. You now have no required order for listing your MAILERs except for MAILER(`uucp'), which must follow MAILER(`smtp') if uucp-dom and uucp-uudom are used.
For more information about mailers, refer to Mailers and sendmail. If you need to build a new sendmail.cf file, refer to Changing the sendmail Configuration in Chapter 2, Mail Services (Tasks).
The following table describes additional 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 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,
Table 3-26 Additional Mailer Flags
|
The following table describes additional 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 the equates that already exist in the configuration file.
Magent-name, equate, equate, ...
The following example includes the new W= equate. This equate 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')
The preceding example places a limit of 1000 on the number of messages that are delivered per connection on an smtp mailer.
If you need to build a new sendmail.cf file, refer to Changing the sendmail Configuration in Chapter 2, Mail Services (Tasks).
Note - Typically, you modify the equate definitions in the mailer directory only when you fine-tune.
Table 3-27 Additional Equates for Delivery Agents
|
The following list provides details about additional queue features.
This release 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 nondaemon 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 simplifies the movement of queued items between queues.
Starting with version 8.12, only root can run the mail queue. For further details, refer to the changes that are described in the mailq(1) man page. For new task information, refer to Administering the Queue Directories (Task Map).
To accommodate envelope splitting, queue file names are now 15–characters long, rather than 14–characters long. File systems with a 14–character name limit are no longer supported.
For task information, refer to Administering the Queue Directories (Task Map).
The following list describes changes in the use of the Lightweight Directory Access Protocol (LDAP) with sendmail.
LDAPROUTE_EQUIVALENT() and LDAPROUTE_EQUIVALENT_FILE() permit you to specify equivalent host names, which are replaced by the masquerade domain name for LDAP routing lookups. For more information, refer to /etc/mail/cf/README.
As noted in the Release Notes that are part of the sendmail distribution at ftp://ftp.sendmail.org, the LDAPX map has been renamed to LDAP. Use the following syntax for LDAP.
Kldap ldap options
This release 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 of sendmail prevents commas in quoted key and value strings in the specifications of the LDAP alias file from dividing a single entry into multiple entries.
This version of sendmail has a new option for LDAP maps. The option -Vseparator enables you to specify a separator so that a lookup can return both an attribute and a value that are separated by the relevant separator.
In addition to 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.
Table 3-28 Comparison of Tokens
|
The following table describes additional LDAP map flags.
Table 3-29 Additional LDAP Map Flags
|
The old [TCP] built-in mailer is not available. Use the P=[IPC] built-in mailer instead. The interprocess communications ([IPC]) built-in mailer now enables 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 resemble the following.
Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /system/volatile/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 3-30 Possible Values for the First Mailer Argument
|
The following table lists the additional rule sets and describes what the rule sets do.
Table 3-31 New Rule Sets
|
The following list describes additional rule set features.
Numbered rule sets are also named, but the rule sets 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 are not added to S0.
To support a read-only /usr file system, the contents of the /usr/lib/mail directory has been moved to the /etc/mail/cf directory. For details, refer to Contents of the /etc/mail/cf Directory. Note, however, that the shell scripts /usr/lib/mail/sh/check-hostname and /usr/lib/mail/sh/check-permissions are now in the /usr/sbin directory. See Other Files Used for Mail Services. For backward compatibility, symbolic links point to each file's new location.
The new name for /usr/lib/mail/cf/main-v7sun.mc is /etc/mail/cf/cf/main.mc.
The new name for /usr/lib/mail/cf/subsidiary-v7sun.mc is /etc/mail/cf/cf/subsidiary.mc.
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, a hard link from the old name to the new name is created. Otherwise, no change is made. 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, a hard link from the old name to the new name is created. Otherwise, no change is made. The default content is zero length.
Starting with version 8.12 of sendmail, IPv6 addresses that are used in configuration should be prefixed with the IPv6: tag to identify the address properly. If you are not identifying an IPv6 address, a prefix tag is not used.