<chapter id="mailrefer-1"><title>Mail
Services (Reference)</title><highlights><para>The <command>sendmail</command> program
is a mail transport agent. The program
uses a configuration file to provide
aliasing and forwarding, automatic
routing to network gateways, and flexible
configuration. The Solaris OS supplies
standard configuration files that
most sites can use. <olink targetptr="mailintro-1" remap="internal">Chapter&nbsp;12,
Mail Services (Overview)</olink> provides
an introduction to the components
of mail services and a description
of a typical mail service configuration. <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink> explains
how to set up and administer an electronic
mail system. This chapter provides
information about the following topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-75" remap="internal">Solaris Version
of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-53" remap="internal">Software
and Hardware Components of Mail Services</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-45" remap="internal">Mail Service
Programs and Files</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-14" remap="internal">Mail Addresses
and Mail Routing</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-24" remap="internal">Interactions
of sendmail With Name Services</olink></para>
</listitem><listitem><para><olink targetptr="evemx" remap="internal">Changes in Version 8.13 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-105" remap="internal">Changes
From Version 8.12 of sendmail</olink></para>
</listitem>
</itemizedlist><itemizedlist><para>For details that are not covered
in these chapters, see the following
man pages:</para><listitem><para><olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem><listitem><para><olink targetdoc="refman1m" targetptr="mail.local-1m" remap="external"><citerefentry><refentrytitle>mail.local</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem><listitem><para><olink targetdoc="refman1" targetptr="mailstats-1" remap="external"><citerefentry><refentrytitle>mailstats</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</listitem><listitem><para><olink targetdoc="refman1m" targetptr="makemap-1m" remap="external"><citerefentry><refentrytitle>makemap</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem><listitem><para><olink targetdoc="refman1m" targetptr="editmap-1m" remap="external"><citerefentry><refentrytitle>editmap</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="mailrefer-75"><title>Solaris
Version of <command>sendmail</command></title><para>This section, which includes
the following topics, describes some
of the differences in the Solaris
version of <command>sendmail</command> as
compared to the generic Berkeley version.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-76" remap="internal">Flags Used
and Not Used to Compile sendmail</olink></para>
</listitem><listitem><para><olink targetptr="enmxq" remap="internal">MILTER, Mail Filter API for sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-49" remap="internal">Alternative
sendmail Commands</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-51" remap="internal">Versions
of the Configuration File</olink></para>
</listitem>
</itemizedlist><sect2 id="mailrefer-76"><title>Flags
Used and Not Used to Compile <command>sendmail</command></title><para>Starting in the Solaris
10 release, the following flags are
used to compile <command>sendmail</command>.
If your configuration requires other
flags, you need to download the source
and recompile the binary. You can
find information about this process
at <ulink url="http://www.sendmail.org" type="url">http://www.sendmail.org</ulink>.</para><table frame="topbot" id="mailrefer-tbl-101"><title>General <command>sendmail</command> Flags</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec4" colwidth="50*"/><colspec colname="colspec5" colwidth="50*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>SOLARIS=21000</literal></para>
</entry><entry><para>Support for the Solaris 10 release.</para>
</entry>
</row><row><entry><para><literal>MILTER</literal></para>
</entry><entry><para>Support for the Mail Filter
API. In version 8.13 of <command>sendmail</command>, this flag is enabled by
default. See <olink targetptr="enmxq" remap="internal">MILTER,
Mail Filter API for sendmail</olink>.</para>
</entry>
</row><row><entry><para><literal>NETINET6</literal></para>
</entry><entry><para>Support for IPv6. This flag
has been moved from <filename>conf.h</filename> to <filename>Makefile</filename>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><table frame="topbot" id="mailrefer-tbl-102"><title>Maps
and Database Types</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="50*"/><colspec colname="colspec1" colwidth="50*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>NDBM</literal></para>
</entry><entry><para>Support for <literal>ndbm</literal> databases</para>
</entry>
</row><row><entry><para><literal>NEWDB</literal></para>
</entry><entry><para>Support for Berkeley DB databases</para>
</entry>
</row><row><entry><para><literal>USERDB</literal></para>
</entry><entry><para>Support for the user database</para>
</entry>
</row><row><entry><para><literal>NIS</literal></para>
</entry><entry><para>Support for <literal>nis</literal> databases</para>
</entry>
</row><row><entry><para><literal>NISPLUS</literal></para>
</entry><entry><para>Support for <literal>nisplus</literal> databases</para>
</entry>
</row><row><entry><para><literal>LDAPMAP</literal></para>
</entry><entry><para>Support for <literal>LDAP</literal> maps</para>
</entry>
</row><row><entry><para><literal>MAP_REGEX</literal></para>
</entry><entry><para>Support for regular expression
maps</para>
</entry>
</row>
</tbody>
</tgroup>
</table><table frame="topbot" id="mailrefer-tbl-103"><title>Solaris
Flags</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="50*"/><colspec colname="colspec3" colwidth="50*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>SUN_EXTENSIONS</literal></para>
</entry><entry><para>Support for Sun extensions that
are included in <filename>sun_compat.o</filename>.</para>
</entry>
</row><row><entry><para><literal>SUN_INIT_DOMAIN</literal></para>
</entry><entry><para>For backward compatibility,
support for the use of NIS domain
names to fully qualify the local host
name. For more information, look for
vendor-specific information in <ulink url="http://www.sendmail.org" type="url">http://www.sendmail.org</ulink>.</para>
</entry>
</row><row><entry><para><literal>SUN_SIMPLIFIED_LDAP</literal></para>
</entry><entry><para>Support for a simplified LDAP
API, which is specific to Sun. For
more information, look for vendor-specific
information in <ulink url="http://www.sendmail.org" type="url">http://www.sendmail.org</ulink>.</para>
</entry>
</row><row><entry><para><literal>VENDOR_DEFAULT=VENDOR_SUN</literal></para>
</entry><entry><para>Selects Sun as the default vendor.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following table lists generic
flags that are not used to compile
the version of <command>sendmail</command> that
is delivered with the Solaris 10 release.</para><table frame="topbot" id="mailrefer-tbl-104"><title>Generic
Flags Not Used in the Solaris Version
of <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="50*"/><colspec colwidth="50*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>SASL</literal></para>
</entry><entry><para>Simple Authentication and Security
Layer (RFC 2554)</para>
</entry>
</row><row><entry><para><literal>STARTTLS</literal></para>
</entry><entry><para>Transaction Level Security (RFC
2487)</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>To see a list of the flags that
are used to compile <command>sendmail</command>,
use the following command.</para><screen>% /usr/lib/sendmail -bt -d0.10 &lt; /dev/null</screen><note><para>The preceding command
does not list the flags that are specific
to Sun.</para>
</note>
</sect2><sect2 id="enmxq"><title><literal>MILTER</literal>,
Mail Filter API for <command>sendmail</command></title><para><literal>MILTER</literal>, <command>sendmail</command>'s Mail Filter API,
enables third-party programs to access
mail messages as they are being processed
to filter meta-information and content.
You do not need to build the filter
and configure <command>sendmail</command> to
use it. This API is enabled by default
in version 8.13 of <command>sendmail</command>.</para><itemizedlist><para>For more details, see the following:</para><listitem><para><ulink url="http://www.sendmail.org/" type="url">http://www.sendmail.org/</ulink></para>
</listitem><listitem><para><ulink url="http://www.milter.org/" type="url">http://www.milter.org/</ulink></para>
</listitem>
</itemizedlist>
</sect2><sect2 id="mailrefer-49"><title>Alternative <command>sendmail</command> Commands</title><para>The Solaris release does
not include all of the command synonyms
that are provided in the generic release
from sendmail.org. This table includes
a complete list of the command aliases.
The table also lists whether the commands
are included in the Solaris release
and how to generate the same behavior
by using <command>sendmail</command>.</para><table frame="topbot" id="mailrefer-tbl-50"><title>Alternate <command>sendmail</command> Commands</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colwidth="132*"/><colspec colwidth="132*"/><colspec colwidth="132*"/><thead><row rowsep="1"><entry><para>Alternate Name</para>
</entry><entry><para>In the Solaris Release?</para>
</entry><entry><para>Options With <command>sendmail</command></para>
</entry>
</row>
</thead><tbody><row><entry><para><command>hoststat</command></para>
</entry><entry><para>No</para>
</entry><entry><para><command>sendmail</command> <option>bh</option></para>
</entry>
</row><row><entry><para><command>mailq</command></para>
</entry><entry><para>Yes</para>
</entry><entry><para><command>sendmail</command> <option>bp</option></para>
</entry>
</row><row><entry><para><command>newaliases</command></para>
</entry><entry><para>Yes</para>
</entry><entry><para><command>sendmail</command> <option>bi</option></para>
</entry>
</row><row><entry><para><command>purgestat</command></para>
</entry><entry><para>No</para>
</entry><entry><para><command>sendmail</command> <option>bH</option></para>
</entry>
</row><row valign="bottom"><entry><para><command>smtpd</command></para>
</entry><entry><para>No</para>
</entry><entry><para><command>sendmail</command> <option>bd</option></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-51"><title>Versions
of the Configuration File</title><para>Starting in the Solaris
10 release, <command>sendmail</command> includes
a configuration option that enables
you to define the version of the <filename>sendmail.cf</filename> file. This
option enables older configuration
files to be used with the current
version of <command>sendmail</command>.
 You can set the version level to
values between <literal>0</literal> and <literal>10</literal>. You can also define
the vendor. Either Berkeley or Sun
is a valid vendor option. If a version
level is specified but no vendor is
defined, <literal>Sun</literal> is
used as the default vendor setting.
The following table lists some of
the valid options.</para><table frame="topbot" id="mailrefer-tbl-52"><title>Version
Values for the Configuration File</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="88*"/><colspec colname="column2" colwidth="308*"/><thead><row rowsep="1"><entry><para>Field</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option role="nodash">V7/Sun</option></para>
</entry><entry><para>Setting that was used for version
8.8 of <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><option role="nodash">V8/Sun</option></para>
</entry><entry><para>Setting that was used for version
8.9 of <command>sendmail</command>.
This setting was included in the Solaris
8 release.</para>
</entry>
</row><row><entry><para><option role="nodash">V9/Sun</option></para>
</entry><entry><para>Setting that was used for versions
8.10 and 8.11 of <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><option role="nodash">V10/Sun</option></para>
</entry><entry><para>Setting that is used for version
8.12 and version 8.13 of <command>sendmail</command>. Version 8.12 is the default
for the Solaris 9 release. Starting
in the Solaris 10 release, version
8.13 is the default.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><note><para>You are urged not to use <option role="nodash">V1/Sun</option>. For
more information, refer to <ulink url="http://www.sendmail.org/vendor/sun/differences.html#4" type="url">http://www.sendmail.org/vendor/sun/differences.html#4</ulink>.</para>
</note><para>For task information, refer
to <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2>
</sect1><sect1 id="mailrefer-53"><title>Software
and Hardware Components of Mail Services</title><para>This section describes the software
and hardware components of a mail
system.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-54" remap="internal">Software
Components</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-68" remap="internal">Hardware
Components</olink></para>
</listitem>
</itemizedlist><sect2 id="mailrefer-54"><title>Software
Components</title><para>Each mail service includes
at least one of each of the following
software components.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-55" remap="internal">Mail User
Agent</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-56" remap="internal">Mail Transfer
Agent</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-57" remap="internal">Local Delivery
Agent</olink></para>
</listitem>
</itemizedlist><para>This section also describes
these software components.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-58" remap="internal">Mailers and
sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-59" remap="internal">Mail Addresses</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-64" remap="internal">Mailbox Files</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-66" remap="internal">Mail Aliases</olink></para>
</listitem>
</itemizedlist><sect3 id="mailrefer-55"><title>Mail
User Agent</title><para>The <emphasis>mail user agent</emphasis> is
the program that acts as the interface
between the user and mail transfer
agent. The <command>sendmail</command> program
is a mail transfer agent. The Solaris
operating system supplies the following
mail user agents.</para><itemizedlist><listitem><para><filename>/usr/bin/mail</filename></para>
</listitem><listitem><para><filename>/usr/bin/mailx</filename></para>
</listitem><listitem><para><filename>/usr/dt/bin/dtmail</filename></para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-56"><title>Mail
Transfer Agent</title><para>The <emphasis>mail transfer
agent</emphasis> is responsible for
the routing of mail messages and the
resolution of mail addresses. This
agent is also known as a mail <emphasis>transport</emphasis> agent. The transfer agent
for the Solaris operating system is <command>sendmail</command>. The transfer agent
performs these functions.</para><itemizedlist><listitem><para>Accepts messages from
the mail user agent</para>
</listitem><listitem><para>Resolves destination
addresses</para>
</listitem><listitem><para>Selects a proper delivery
agent to deliver the mail</para>
</listitem><listitem><para>Receives incoming
mail from other mail transfer agents</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-57"><title>Local
Delivery Agent</title><para>A <emphasis>local delivery
agent</emphasis> is a program that
implements a mail delivery protocol.
The following local delivery agents
are provided with the Solaris operating
system.</para><itemizedlist><listitem><para>The UUCP local delivery
agent, which uses <command>uux</command> to
deliver mail</para>
</listitem><listitem><para>The local delivery
agent, which is <command>mail.local</command> in
the standard Solaris release</para>
</listitem>
</itemizedlist><para><olink targetptr="mailrefer-105" remap="internal">Changes
From Version 8.12 of sendmail</olink> provides
information on these related topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-117" remap="internal">Additional
Delivery Agent Flags From Version
8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-118" remap="internal">Additional
Equates for Delivery Agents From Version
8.12 of sendmail</olink></para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-58"><title>Mailers
and <command>sendmail</command></title><para><emphasis>Mailer</emphasis> is
a <command>sendmail</command>-specific
term. A <emphasis>mailer</emphasis> is
used by <command>sendmail</command> to
identify a specific instance of a
customized local delivery agent or
a customized mail transfer agent.
You need to specify at least one mailer
in your <filename>sendmail.cf</filename> file.
For task information, refer to <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>. This
section provides a brief description
of two types of mailers.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-90" remap="internal">Simple Mail
Transfer Protocol (SMTP) Mailers</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-91" remap="internal">UNIX-to-UNIX
Copy Program (UUCP) Mailers</olink></para>
</listitem>
</itemizedlist><para>For additional information
about mailers, see <ulink url="http://www.sendmail.org/m4/readme.html" type="url">http://www.sendmail.org/m4/readme.html</ulink> or <filename>/etc/mail/cf/README</filename>.</para><sect4 id="mailrefer-90"><title>Simple
Mail Transfer Protocol (SMTP) Mailers</title><para>SMTP is the standard mail
protocol that is used on the Internet.
This protocol defines these mailers.</para><itemizedlist><listitem><para><literal>smtp</literal> provides
regular SMTP transfers to other servers.</para>
</listitem><listitem><para><literal>esmtp</literal> provides
extended SMTP transfers to other servers.</para>
</listitem><listitem><para><literal>smtp8</literal> provides
SMTP transfers to other servers without
converting 8-bit data to MIME.</para>
</listitem><listitem><para><literal>dsmtp</literal> provides
on-demand delivery by using the <literal>F=%</literal> mailer flag.  Refer
to <olink targetptr="mailrefer-116" remap="internal">Changes to the MAILER() Declaration From Version 8.12 of sendmail</olink> and <olink targetptr="mailrefer-117" remap="internal">Additional
Delivery Agent Flags From Version
8.12 of sendmail</olink>.</para>
</listitem>
</itemizedlist>
</sect4><sect4 id="mailrefer-91"><title>UNIX-to-UNIX
Copy Program (UUCP) Mailers</title><para>If possible, avoid using
UUCP. For an explanation, refer to <ulink url="http://www.sendmail.org/m4/uucp_mailers.html" type="url">http://www.sendmail.org/m4/uucp_mailers.html</ulink> or do a search in <filename>/etc/mail/cf/README</filename> on this string: <literal>USING
UUCP MAILERS</literal>.</para><para>UUCP defines these mailers.</para><variablelist><varlistentry><term><literal>uucp-old</literal></term><listitem><para>Names in the <literal>$=U</literal> class are sent to <literal>uucp-old</literal>. <literal>uucp</literal> is
the obsolete name for this mailer.
The <literal>uucp-old</literal> mailer
uses an exclamation-point address
in the headers.</para>
</listitem>
</varlistentry><varlistentry><term><literal>uucp-new</literal></term><listitem><para>Names in the <literal>$=Y</literal> class are sent to <literal>uucp-new</literal>. Use this mailer when you
know that the receiving UUCP mailer
can manage multiple recipients in
one transfer. <literal>suucp</literal> is
the obsolete name for this mailer.
The <literal>uucp-new</literal> mailer
also uses an exclamation-point address
in the headers.</para>
</listitem>
</varlistentry>
</variablelist><para>If <literal>MAILER(smtp)</literal> is
also specified in your configuration,
two more mailers are defined.</para><variablelist><varlistentry><term><literal>uucp-dom</literal></term><listitem><para>This mailer uses domain-style
addresses and, basically, applies
the SMTP rewriting rules.</para>
</listitem>
</varlistentry><varlistentry><term><literal>uucp-uudom</literal></term><listitem><para>Names in the <literal>$=Z</literal> class are sent to <literal>uucp-uudom</literal>. <literal>uucp-uudom</literal> and <literal>uucp-dom</literal> use the same header
address format, domain-style addresses.</para>
</listitem>
</varlistentry>
</variablelist><note><para>Because the <literal>smtp</literal> mailer
modifies the UUCP mailer, always put <literal>MAILER(smtp)</literal> before <literal>MAILER(uucp)</literal> in your <filename>.mc</filename> file.</para>
</note>
</sect4>
</sect3><sect3 id="mailrefer-59"><title>Mail
Addresses</title><para>The <emphasis>mail address</emphasis> contains
the name of the recipient and the
system to which the mail message is
delivered. When you administer a small
mail system that does not use a name
service, addressing mail is easy.
The login names uniquely identify
the users. Complexity is introduced
if you are administering a mail system
that has more than one system with
mailboxes or that has one or more
domains. Additional complexity can
be generated if you have a UUCP (or
other) mail connection to servers
outside your network. The information
in the following sections can help
you understand the parts and complexities
of a mail address.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-93" remap="internal">Domains and
Subdomains</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-95" remap="internal">Name Service
Domain Name and Mail Domain Name</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-94" remap="internal">Typical Format
for Mail Addresses</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-96" remap="internal">Route&ndash;Independent
Mail Addresses</olink></para>
</listitem>
</itemizedlist><sect4 id="mailrefer-93"><title>Domains
and Subdomains</title><para>Email addressing uses domains.
A <emphasis>domain</emphasis> is a
directory structure for network address
naming. A domain can have one or more <emphasis>subdomains</emphasis>. The domain
and subdomains of an address can be
compared to the hierarchy of a file
system. Just as a subdirectory is
considered to be inside the directory
above it, each subdomain in a mail
address is considered to be inside
the location to its right.</para><para>The following table shows
some top-level domains.</para><table frame="topbot" id="mailrefer-tbl-60"><title>Top-Level
Domains</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="132*"/><colspec colname="column2" colwidth="264*"/><thead><row rowsep="1"><entry><para>Domain</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>com</literal></para>
</entry><entry><para>Commercial sites</para>
</entry>
</row><row><entry><para><literal>edu</literal></para>
</entry><entry><para>Educational sites</para>
</entry>
</row><row><entry><para><literal>gov</literal></para>
</entry><entry><para>United States government installations</para>
</entry>
</row><row><entry><para><literal>mil</literal></para>
</entry><entry><para>United States military installations</para>
</entry>
</row><row><entry><para><literal>net</literal></para>
</entry><entry><para>Networking organizations</para>
</entry>
</row><row><entry><para><literal>org</literal></para>
</entry><entry><para>Other nonprofit organizations</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>Domains are case insensitive.
You can use uppercase, lowercase,
or mixed-case letters in the domain
part of an address without making
any errors.</para>
</sect4><sect4 id="mailrefer-95"><title>Name
Service Domain Name and Mail Domain
Name</title><para>When you are working with name
service domain names and mail domain
names, remember the following.</para><itemizedlist><listitem><para>By default, the <command>sendmail</command> program strips
the first component from the NIS or
NIS+ domain name to form the mail
domain name. For example, if an NIS+
domain name were <literal>bldg5.example.com</literal>, its mail domain name would
be <literal>example.com</literal>.</para>
</listitem><listitem><para>Although mail domain
addresses are case insensitive, the
NIS or NIS+ domain name is not. For
the best results, use lowercase characters
when setting up the mail and NIS or
NIS+ domain names.</para>
</listitem><listitem><para>The DNS domain name
and the mail domain name must be identical.</para>
</listitem>
</itemizedlist><para>For more information, refer
to <olink targetptr="mailrefer-24" remap="internal">Interactions
of sendmail With Name Services</olink>.</para>
</sect4><sect4 id="mailrefer-94"><title>Typical
Format for Mail Addresses</title><para>Typically, a mail address has
the following format. For further
details, refer to <olink targetptr="mailrefer-96" remap="internal">Route&ndash;Independent
Mail Addresses</olink>.</para><screen><replaceable>user@subdomain. ... .subdomain2.subdomain1.top-level-domain</replaceable></screen><para>The part of the address to the
left of the <literal>@</literal> sign
is the local address. The local address
can contain the following.</para><itemizedlist><listitem><para>Information about
routing with another mail transport
(for example, <literal>bob::vmsvax@gateway</literal> or <literal>smallberries%mill.uucp@gateway</literal>) </para>
</listitem><listitem><para>An alias (for example, <literal>iggy.ignatz</literal>)</para>
</listitem>
</itemizedlist><note><para>The receiving mailer is
responsible for determining what the
local part of the address means. For
information about mailers, refer to <olink targetptr="mailrefer-58" remap="internal">Mailers and
sendmail</olink>.</para>
</note><para>The part of the address
to the right of the <literal>@</literal> sign
shows the domain levels, which is
where the local address resides. A
dot separates each subdomain. The
domain part of the address can be
an organization, a physical area,
or a geographic region. Furthermore,
the order of domain information is
hierarchical, so the more local the
subdomain, the closer the subdomain
is to the <literal>@</literal> sign.</para>
</sect4><sect4 id="mailrefer-96"><title>Route&ndash;Independent
Mail Addresses</title><para>Mail addresses can be route
independent. Route-independent addressing
requires the sender of an email message
to specify the name of the recipient
and the final destination. A high-speed
network, such as the Internet, uses
route-independent addresses. Route-independent
addresses can have this format.</para><screen><replaceable>user</replaceable><literal>@</literal><replaceable>host</replaceable><literal>.</literal><replaceable>domain</replaceable></screen><para>Route-independent addresses
for UUCP connections can have this
address format.</para><screen><replaceable>host</replaceable><literal>.</literal><replaceable>domain</replaceable><literal>!</literal><replaceable>user</replaceable></screen><para>The increased popularity of
the domain-hierarchical naming scheme
for computers is making route-independent
addresses more common. Actually, the
most common route-independent address
omits the host name and relies on
the domain name service to properly
identify the final destination of
the email message. </para><screen><replaceable>user</replaceable><literal>@</literal><replaceable>domain</replaceable></screen><para>Route-independent addresses
are first read by searching for the <literal>@</literal> sign. The domain hierarchy
is then read from the right (the highest
level) to the left (the most specific
part of the address to the right of
the <literal>@</literal> sign).</para>
</sect4>
</sect3><sect3 id="mailrefer-64"><title>Mailbox
Files</title><para>A <emphasis>mailbox</emphasis> is
a file that is the final destination
for email messages. The name of the
mailbox can be the user name or the
identity of a specific function, such
as the postmaster. Mailboxes are in
the <filename>/var/mail/</filename><replaceable>username</replaceable> file, which
can exist either on the user's local
system or on a remote mail server.
In either instance, the mailbox is
on the system to which the mail is
delivered.</para><para>Mail should always be
delivered to a local file system so
that the user agent can pull mail
from the mail spool and store it readily
in the local mailbox. Do not use NFS-mounted
file systems as the destination for
a user's mailbox. Specifically, do
not direct mail to a mail client that
is mounting the <filename>/var/mail</filename> file
system from a remote server. Mail
for the user, in this instance, should
be addressed to the mail server and
not to the client host name. NFS-mounted
file systems can cause problems with
mail delivery and handling.</para><para>The <filename>/etc/mail/aliases</filename> file and name services
such as NIS and NIS+ provide mechanisms
for creating aliases for electronic
mail addresses. So, users do not need
to know the precise local name of
a user's mailbox.</para><para>The following table shows some
common naming conventions for special-purpose
mailboxes.</para><table frame="topbot" pgwide="1" id="mailrefer-tbl-65"><title>Conventions
for the Format of Mailbox Names</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="column1" colwidth="79.20*"/><colspec colname="column2" colwidth="316.80*"/><thead><row rowsep="1"><entry><para>Format</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><replaceable>username</replaceable> </para>
</entry><entry><para>User names are frequently the
same as mailbox names.</para>
</entry>
</row><row><entry><para><replaceable>Firstname</replaceable><literal>.</literal><replaceable>Lastname</replaceable> <replaceable>Firstname</replaceable><literal>_</literal><replaceable>Lastname</replaceable> <replaceable>Firstinitial</replaceable><literal>.</literal><replaceable>Lastname</replaceable> <replaceable>Firstinitial</replaceable><literal>_</literal><replaceable>Lastname</replaceable>   </para>
</entry><entry><para>User names can be identified
as full names with a dot (or an underscore)
that separates the first and last
names. Alternately, user names can
be identified by a first initial with
a dot (or an underscore) that separates
the initial and the last name.</para>
</entry>
</row><row><entry><para><literal>postmaster</literal> </para>
</entry><entry><para>Users can address questions
and report problems with the mail
system to the <literal>postmaster</literal> mailbox.
Each site and domain should have a <literal>postmaster</literal> mailbox.</para>
</entry>
</row><row><entry><para><literal>MAILER-DAEMON</literal></para>
</entry><entry><para><filename>sendmail</filename> automatically
routes any mail that is addressed
to the <literal>MAILER-DAEMON</literal> to
the postmaster.</para>
</entry>
</row><row><entry><para></para><para><replaceable>aliasname</replaceable><literal>-request</literal> </para>
</entry><entry><para>Names that end in <literal>-request</literal> are administrative addresses
for distribution lists. This address
should redirect mail to the person
who maintains the distribution list.</para>
</entry>
</row><row><entry><para></para><para><literal>owner-</literal><replaceable>aliasname</replaceable></para>
</entry><entry><para>Names that begin with <literal>owner-</literal> are administrative addresses
for distribution lists. This address
should redirect mail to the person
who handles mail errors.</para>
</entry>
</row><row><entry><para></para><para><literal>owner-owner</literal></para>
</entry><entry><para>This alias is used when no <literal>owner-</literal><replaceable>aliasname</replaceable> alias
exists for errors to be returned to.
This address should redirect mail
to the person who handles mail errors.
This address also should be defined
on any system that maintains a large
number of aliases.</para>
</entry>
</row><row><entry><para><replaceable>local</replaceable><literal>%</literal><replaceable>domain</replaceable> 
   </para>
</entry><entry><para>The percent sign (<literal>%</literal>)
marks a local address that is expanded
when the message arrives at its destination.
Most mail systems interpret mailbox
names with <literal>%</literal> characters
as full mail addresses. The <literal>%</literal> is
replaced with an <literal>@</literal>,
and the mail is redirected accordingly.
Although many people use the <literal>%</literal> convention,
this convention is not a formal standard.
This convention is referred to as
the &ldquo;percent hack.&rdquo; This
feature is often used to help debug
mail problems.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>Starting with <command>sendmail</command> version
8, the envelope sender for mail that
is sent to a group alias has been
changed to the address that is expanded
from the owner alias, if an owner
alias exists. This change enables
any mail errors to be sent to the
alias owner, rather than being returned
to the sender. With this change, users
notice that mail that was sent to
an alias looks as if the mail came
from the alias owner, when delivered.
 The following alias format helps
with some of the problems that are
associated with this change.</para><screen>mygroup: :include:/pathname/mygroup.list
owner-mygroup: mygroup-request
mygroup-request: sandys, ignatz</screen><para>In this example, the <literal>mygroup</literal> alias is the actual
mail alias for the group. The <literal>owner-mygroup</literal> alias receives error messages.
The <literal>mygroup-request</literal> alias
should be used for administrative
requests. This structure means that
in mail sent to the <literal>mygroup</literal> alias,
the envelope sender changes to <literal>mygroup-request</literal>.</para>
</sect3><sect3 id="mailrefer-66"><title>Mail
Aliases</title><para>An <emphasis>alias</emphasis> is
an alternate name. For email, you
can use aliases to assign a mailbox
location or to define mailing lists.
For a task map, refer to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>. Also,
you can refer to <olink targetptr="mailrefer-33" remap="internal">Mail Alias
Files</olink> in this chapter.</para><para>For large sites, the mail
alias typically defines the location
of a mailbox. Providing a mail alias
is like providing a room number as
part of the address for an individual
at a large corporation that occupies
multiple rooms. If you do not provide
the room number, the mail is delivered
to a central address. Without a room
number, extra effort is required to
determine where within the building
the mail is to be delivered. So, the
possibility of an error increases.
For example, if two people who are
named Kevin Smith are in the same
building, only one of them might get
mail. To correct the problem, each
Kevin Smith should have a room number
added to his address.</para><para>Use domains and location-independent
addresses as much as possible when
you create mailing lists. To enhance
portability and flexibility of alias
files, make your alias entries in
mailing lists as generic and system
independent as possible. For example,
if you have a user who is named <literal>ignatz</literal> on system <literal>mars</literal>,
in domain <literal>example.com</literal>,
create the alias <literal>ignatz@example</literal> instead
of <literal>ignatz@mars</literal>.
If user <literal>ignatz</literal> changes
the name of his system but remains
within the <literal>example</literal> domain,
you do not need to update alias files
to reflect the change in system name.</para><para>When you create alias entries,
type one alias per line. You should
have only one entry that contains
the user's system name. For example,
you could create the following entries
for user <literal>ignatz</literal>.</para><screen>ignatz: iggy.ignatz
iggyi: iggy.ignatz
iggy.ignatz: ignatz@mars</screen><para>You can create an alias for
local names or domains. For example,
an alias entry for user <literal>fred</literal>,
who has a mailbox on the system <literal>mars</literal> and is in the domain <literal>planets</literal>, could have this
entry in the NIS+ aliases table.</para><screen>fred: fred@planets</screen><para>When you create mail lists
that include users outside your domain,
create the alias with the user name
and the domain name. For example,
if you have a user who is named <literal>smallberries</literal> on system <literal>privet</literal>, in domain <literal>example.com</literal>, create the alias as <literal>smallberries@example.com</literal>.
The email address of the sender is
now automatically translated to a
fully qualified domain name when mail
goes outside the user's domain.</para><para>The following list describes
methods for creating and administering
mail alias files.</para><itemizedlist><listitem><para>You can create mail
aliases for global use in the NIS+ <filename>mail_aliases</filename> table, the
NIS <filename>aliases</filename> map,
or in local <filename>/etc/mail/aliases</filename> files.
You can also create and administer
mailing lists that use the same alias
files.</para>
</listitem><listitem><para>Depending on the configuration
of your mail services, you can administer
aliases by using the NIS or NIS+ name
service to maintain a global <filename>aliases</filename> database. Otherwise, you
could update all the local <filename>/etc/mail/aliases</filename> files to keep the aliases
synchronized.</para>
</listitem><listitem><para>Users can also create
and use aliases. Users can create
aliases either in their local <filename>~/.mailrc</filename> file, which only the user
 can use, or in their local <filename>/etc/mail/aliases</filename> file, which anyone can
use. Users cannot normally create
or administer NIS or NIS+ alias files.</para>
</listitem>
</itemizedlist>
</sect3>
</sect2><sect2 id="mailrefer-68"><title>Hardware
Components</title><para>You can provide the three
required elements of mail configuration
in the same system or have separate
systems provide these elements.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-69" remap="internal">Mail Host</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-70" remap="internal">Mail Server</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-71" remap="internal">Mail Client</olink></para>
</listitem>
</itemizedlist><para>When users are to communicate
with networks outside your domain,
you must also add a fourth element,
a mail gateway. For more information,
refer to <olink targetptr="mailrefer-72" remap="internal">Mail Gateway</olink>. The following
sections describe each hardware component.</para><sect3 id="mailrefer-69"><title>Mail
Host</title><para>A <emphasis>mail host</emphasis> is
the machine that you designate as
the main mail machine on your network.
A mail host is the machine to which
other systems at the site forward
mail that cannot be delivered. You
designate a system as a mail host
in the <filename>hosts</filename> database
by adding the word <filename>mailhost</filename> to
the right of the IP address in the
local <filename>/etc/hosts</filename> file.
Alternately, you can add the word <filename>mailhost</filename> similarly to the
hosts file in the name service. For
detailed task information, refer to <olink targetptr="mailadmin-29" remap="internal">How to Set
Up a Mail Host</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><para>A good candidate for a mail
host is a system that is configured
as a router from your network to the
Internet global network. For more
information, refer to <olink targetptr="pppsvrconfig.intro-1" remap="internal">Chapter&nbsp;15,
Solaris PPP 4.0 (Overview)</olink>, <olink targetptr="uucpov-1" remap="internal">Chapter&nbsp;24,
UUCP (Overview)</olink>, and <olink targetdoc="sysadv3" targetptr="ipconfig-116" remap="external"><citetitle remap="section">Configuring an IPv4 Router</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.
If no systems on your local network
have a modem, designate a system as
the mail host.</para><para>Some sites use standalone machines
that are not networked in a time-sharing
configuration. Specifically, the standalone
machine serves terminals that are
attached to its serial ports. You
can set up electronic mail for this
configuration by designating the standalone
system as the mail host of a single-system
network. <olink targetptr="mailintro-17" remap="internal">Overview of the Hardware Components</olink> in <olink targetptr="mailintro-1" remap="internal">Chapter&nbsp;12,
Mail Services (Overview)</olink> provides
a figure that shows a typical email
configuration.</para>
</sect3><sect3 id="mailrefer-70"><title>Mail
Server</title><para>A <emphasis>mailbox</emphasis> is
a single file that contains email
for a particular user. Mail is delivered
to the system where the user's mailbox
resides, which can be on a local machine
or a remote server. A <emphasis>mail
server</emphasis> is any system that
maintains user mailboxes in its <filename>/var/mail</filename> directory. For
task information, refer to <olink targetptr="mailadmin-15" remap="internal">How to Set
Up a Mail Server</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><para>The mail server routes all mail
from a client. When a client sends
mail, the mail server puts the mail
in a queue for delivery. After the
mail is in the queue, a user can reboot
or turn off the client without losing
those mail messages. When the recipient
gets mail from a client, the path
in the <literal>From</literal> line
of the message contains the name of
the mail server. If the recipient
responds, the response goes to the
user's mailbox. Good candidates for
mail servers are systems that provide
a home directory for users or systems
that are backed up regularly.</para><para>If the mail server is
not the user's local system, users
in configurations that use NFS software
can mount the <filename>/var/mail</filename> directory
by using the <filename>/etc/vfstab</filename> file,
if they have <filename>root</filename> access.
Otherwise, users can use the automounter.
If NFS support is not available, users
can log in to the server to read their
mail.</para><para>If users on your network
send other types of mail, such as
audio files or files from desktop
publishing systems, you need to allocate
more space on the mail server for
mailboxes.      </para><para>By establishing a mail
server for all mailboxes, you can
simplify your process of doing backups.
Backups can be difficult to do when
mail is spread over many systems.
The disadvantage of storing many mailboxes
on one server is that the server can
be a single point of failure for many
users. However, the advantages of
providing good backups usually make
the risk worthwhile.</para>
</sect3><sect3 id="mailrefer-71"><title>Mail
Client</title><para>A mail client is a user
of mail services with a mailbox on
a mail server. Additionally, the mail
client has a mail alias in the <filename>/etc/mail/aliases</filename> file
that points to the location of the
mailbox. For task information, refer
to <olink targetptr="mailadmin-20" remap="internal">How
to Set Up a Mail Client</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect3><sect3 id="mailrefer-72"><title>Mail
Gateway</title><para>The <emphasis>mail gateway</emphasis> is
a machine that handles connections
between networks that run different
communications protocols or communications
between different networks that use
the same protocol. For example, a
mail gateway might connect a TCP/IP
network to a network that runs the
Systems Network Architecture (SNA)
protocol suite. </para><para>The simplest mail gateway
to set up is the mail gateway that
connects two networks that use the
same protocol or mailer. This system
handles mail with an address for which <command>sendmail</command> cannot find a recipient
in your domain. If a mail gateway
exists, <command>sendmail</command> uses
the gateway to send and receive mail
outside your domain.  </para><para>You can set up a mail
gateway between two networks that
use unmatched mailers, as shown in
the next figure. To support this configuration,
you must customize the <filename>sendmail.cf</filename> file on the mail gateway
system, which can be a difficult and
time-consuming process.  </para><figure id="mailrefer-fig-73"><title>Gateway
Between Different Communications Protocols</title><mediaobject><imageobject><imagedata entityref="fig34.epsi"/>
</imageobject><textobject><simpara>Diagram shows
two mail gateways that use unmatched
mailers.</simpara>
</textobject>
</mediaobject>
</figure><para>If you have a machine that provides
connections to the Internet, you can
configure that machine as the mail
gateway. Carefully consider your site's
security needs before you configure
a mail gateway. You might need to
create a firewall gateway between
your corporate network and other networks,
and set up that gateway as the mail
gateway. For task information, refer
to <olink targetptr="mailadmin-37" remap="internal">How
to Set Up a Mail Gateway</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect3>
</sect2>
</sect1><sect1 id="mailrefer-45"><title>Mail
Service Programs and Files</title><para>Mail services include many programs
and daemons that interact with each
other. This section introduces the
files, programs, terms, and concepts
that are related to administering
electronic mail.</para><itemizedlist><listitem><para><olink targetptr="ewpqz" remap="internal">Enhancement for vacation Utility</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-77" remap="internal">Contents
of the /usr/bin Directory</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-81" remap="internal">Contents
of the /etc/mail Directory</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-82" remap="internal">Contents
of the /usr/lib Directory</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-83" remap="internal">Other Files
Used for Mail Services</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-84" remap="internal">Interactions
of Mail Programs</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-46" remap="internal">sendmail
Program</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-33" remap="internal">Mail Alias
Files</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-39" remap="internal">.forward
Files</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-44" remap="internal">/etc/default/sendmail
File</olink></para>
</listitem>
</itemizedlist><sect2 id="ewpqz"><title>Enhancement
for <command>vacation</command> Utility</title><para>Starting in the Solaris 10 release,
the <command>vacation</command> utility
has been enhanced to enable a user
to specify which incoming messages
receive autogenerated replies. With
this enhancement the user can avoid
sharing confidential or contact information
with unknown people. Messages from
spammers or unknown people would not
receive a reply.</para><para>This enhancement works by matching
an incoming sender's email address
to a list of domains or email addresses
in a <filename>.vacation.filter</filename> file.
 This file is created by the user
and is in the user's home directory.
If a domain or email address match
is found, a reply is sent. If no match
is found, no reply is sent.</para><para>The <filename>.vacation.filter</filename> might
contain entries such as these:</para><screen>company.com
mydomain.com
onefriend@hisisp.com
anotherfriend@herisp.com</screen><para>Note that each line contains
one domain or one email address. Each
entry must be on a separate line.
For a sender's email address to match
with an email address entry, the match
must be exact, except for case. Whether
the letters in the sender's address
are lowercase or uppercase is ignored.
For a sender's email address to match
with a domain entry, the sender's
address must contain the listed domain.
For example, both <literal>somebody@dept.company.com</literal> and <literal>someone@company.com</literal> would be a match for a
domain entry of <literal>company.com</literal>.</para><para>For more information, see the <olink targetdoc="refman1" targetptr="vacation-1" remap="external"><citerefentry><refentrytitle>vacation</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man
page.</para>
</sect2><sect2 id="mailrefer-77"><title>Contents
of the <filename>/usr/bin</filename> Directory</title><para>The following table shows
the contents of the <filename>/usr/bin</filename> directory,
which is used for mail services.</para><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="88*"/><colspec colname="column2" colwidth="44*"/><colspec colname="column3" colwidth="264*"/><thead><row rowsep="1"><entry><para>Name</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>aliasadm</command>  </para>
</entry><entry><para>File</para>
</entry><entry><para>A program to manipulate the
NIS+ aliases map.</para>
</entry>
</row><row><entry><para><command>mail</command>  </para>
</entry><entry><para>File</para>
</entry><entry><para>A user agent.</para>
</entry>
</row><row><entry><para><command>mailcompat</command>  </para>
</entry><entry><para>File</para>
</entry><entry><para>A filter to store mail in SunOS
4.1 mailbox format.</para>
</entry>
</row><row><entry><para><command>mailq</command> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>A program that lists the content
of the mail queue.</para>
</entry>
</row><row><entry><para><command>mailstats</command> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>A program that is used to read
mail statistics that are stored in
the <filename>/etc/mail/statistics</filename> file
(if present).</para>
</entry>
</row><row><entry><para><command>mailx</command> </para>
</entry><entry><para>File</para>
</entry><entry><para>A user agent.</para>
</entry>
</row><row><entry><para><command>mconnect</command> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>A program that connects to the
mailer for address verification and
debugging.</para>
</entry>
</row><row><entry><para><command>praliases</command>  </para>
</entry><entry><para>File</para>
</entry><entry><para>A command to &ldquo;uncompile&rdquo;
the alias database. Refer to the uncompile
information that is provided in the
man page for <olink targetdoc="refman1" targetptr="praliases-1" remap="external"><citerefentry><refentrytitle>praliases</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink>.</para>
</entry>
</row><row><entry><para><command>rmail</command>  </para>
</entry><entry><para>Symbolic Link</para>
</entry><entry><para>A symbolic link to <filename>/usr/bin/mail</filename>. Command that is often
used to permit only the sending of
mail.</para>
</entry>
</row><row><entry><para><command>vacation</command>  </para>
</entry><entry><para>File</para>
</entry><entry><para>A command to set up an automatic
reply to mail.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="mailrefer-81"><title>Contents
of the <filename>/etc/mail</filename> Directory</title><para>The following table shows
the contents of the <filename>/etc/mail</filename> directory.</para><informaltable frame="topbot"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="111.82*"/><colspec colname="column2" colwidth="44.46*"/><colspec colname="column3" colwidth="239.73*"/><thead><row rowsep="1"><entry><para>Name</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>Mail.rc</filename> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>Default settings for the <command>mailx</command> user agent.</para>
</entry>
</row><row><entry><para><filename>aliases</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Mail-forwarding information.</para>
</entry>
</row><row><entry><para><filename>aliases.db</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Default binary form of mail-forwarding
information that is created by running <command>newaliases</command>.</para>
</entry>
</row><row><entry><para><filename>aliases.dir</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Binary form of mail-forwarding
information that is created by running <command>newaliases</command>. Can still be
used, but is no longer used by default
starting with the Solaris 9 release.</para>
</entry>
</row><row><entry><para><filename>aliases.pag</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Binary form of mail-forwarding
information that is created by running <command>newaliases</command>. Can still be
used, but is no longer used by default
starting with the Solaris 9 release.</para>
</entry>
</row><row><entry><para><filename>mailx.rc</filename> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>Default settings for the <command>mailx</command> user agent.</para>
</entry>
</row><row><entry><para><filename>main.cf</filename> </para>
</entry><entry><para>Symbolic link</para>
</entry><entry><para>A symbolic link from this sample
configuration file for main systems
to <filename>sendmail.cf</filename> is
provided for backwards compatibility.
This file is not needed in version
8.13 of <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>relay-domains</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>List of all domains for which
relaying is allowed. By default, only
the local domain is allowed.</para>
</entry>
</row><row><entry><para><filename>sendmail.cf</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Configuration file for mail
routing.</para>
</entry>
</row><row><entry><para><filename>submit.cf</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>New configuration file for the
mail submission program (MSP). For
more information, refer to <olink targetptr="mailrefer-106" remap="internal">submit.cf
Configuration File From Version 8.12
of sendmail</olink>.</para>
</entry>
</row><row><entry><para><filename>local-host-names</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Optional file that you can create
if the number of aliases for the mail
host is too long.</para>
</entry>
</row><row><entry><para><filename>helpfile</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Help file that is used by the
SMTP <command>HELP</command> command.</para>
</entry>
</row><row><entry><para><filename>sendmail.pid</filename> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>File that lists the PID of the
listening daemon and is now in <filename>/var/run</filename>.</para>
</entry>
</row><row><entry><para><filename>statistics</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para><command>sendmail</command> statistics
file. If this file is present, <command>sendmail</command> logs the amount of traffic
through each mailer. Previously, this
file was called <filename>sendmail.st</filename>.</para>
</entry>
</row><row><entry><para><filename>subsidiary.cf</filename>  </para>
</entry><entry><para>Symbolic link</para>
</entry><entry><para>A symbolic link from this sample
configuration file for subsidiary
systems to <filename>sendmail.cf</filename> is
provided for backwards compatibility.
This file is not needed in version
8.13 of <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>trusted-users</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>File that lists the users (one
user per line) who can be trusted
to perform certain mail operations.
By default, only <filename>root</filename> is
in this file. Certain mail operations,
when performed by untrusted users,
result in the following warning, <literal>X-Authentication-Warning: header being
added to a message</literal>.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2><sect2 id="mailrefer-126"><title>Contents
of the <filename>/etc/mail/cf</filename> Directory</title><para>Within the <filename>/etc/mail</filename> directory is a subdirectory, <filename>cf</filename>, that contains all of
the necessary files to build a <filename>sendmail.cf</filename> file. The content
of <filename>cf</filename> is shown
in <olink targetptr="mailintro-tbl-30" remap="internal">Table
14&ndash;9</olink>. </para><para>Starting in the Solaris 10 release,
to support a read-only <filename>/usr</filename> file
system, the content of the <filename>/usr/lib/mail</filename> directory has been moved
to the <filename>/etc/mail/cf</filename> directory.
Note, however, these exceptions. The
shell scripts <filename>/usr/lib/mail/sh/check-hostname</filename> and <filename>/usr/lib/mail/sh/check-permissions</filename> are now in the <filename>/usr/sbin</filename> directory. See <olink targetptr="mailrefer-83" remap="internal">Other Files
Used for Mail Services</olink>. For
backward compatibility, symbolic links
point to each file's new location.</para><table frame="topbot" id="mailintro-tbl-30"><title>Contents
of the <filename>/etc/mail/cf</filename> Directory
Used for Mail Services</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="167.24*"/><colspec colname="column2" colwidth="58.69*"/><colspec colname="column3" colwidth="172.07*"/><thead><row rowsep="1"><entry><para>Name</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>README</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Describes the configuration
files.</para>
</entry>
</row><row><entry><para><filename>cf/main.mc</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Previously named <filename>cf/main-v7sun.mc</filename>. Is the main configuration
file. </para>
</entry>
</row><row><entry><para><filename>cf/Makefile</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Provides rules for building
new configuration files.</para>
</entry>
</row><row><entry><para><filename>cf/submit.mc</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Is the configuration file for
the mail submission program (MSP),
which is used to submit messages.</para>
</entry>
</row><row><entry><para><filename>cf/subsidiary.mc</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Previously named <filename>cf/subsidiary-v7sun.mc</filename>. Is the configuration
file for hosts that NFS-mount <filename>/var/mail</filename> from another host.</para>
</entry>
</row><row><entry><para><filename>domain</filename> </para>
</entry><entry><para>Directory</para>
</entry><entry><para>Provides site-dependent subdomain
descriptions.</para>
</entry>
</row><row><entry><para><filename>domain/generic.m4</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Is the generic domain file from
Berkeley Software Distribution.</para>
</entry>
</row><row><entry><para><filename>domain/solaris-antispam.m4</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Is the domain file with changes
that make <command>sendmail</command> function
like the previous Solaris versions
of <command>sendmail</command>. However,
relaying is disabled completely, sender
addresses with no host name are rejected,
and unresolvable domains are rejected.</para>
</entry>
</row><row><entry><para><filename>domain/solaris-generic.m4</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Is the default domain file with
changes that make <command>sendmail</command> function
like the previous Solaris versions
of <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>feature</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains definitions of specific
features for particular hosts. See <filename>README</filename> for a full description
of the features.</para>
</entry>
</row><row><entry><para><filename>m4</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains site-independent include
files.</para>
</entry>
</row><row><entry><para><filename>mailer</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains definitions of mailers,
which include <literal>local</literal>, <literal>smtp</literal>, and <literal>uucp</literal>.</para>
</entry>
</row><row><entry><para><filename>ostype</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Describes various operating
system environments.</para>
</entry>
</row><row><entry><para><filename>ostype/solaris2.m4</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Defines default local mailer
as <command>mail.local</command>.</para>
</entry>
</row><row><entry><para><filename>ostype/solaris2.ml.m4</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Defines default local mailer
as <command>mail.local</command>.</para>
</entry>
</row><row><entry><para><filename>ostype/solaris2.pre5.m4</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Defines local mailer as <command>mail</command>.</para>
</entry>
</row><row><entry><para><filename>ostype/solaris8.m4</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Defines local mailer as <command>mail.local</command> (in LMTP mode), enables
IPv6, specifies <filename>/var/run</filename> as
the directory for the <filename>sendmail.pid</filename> file.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-82"><title>Contents
of the <filename>/usr/lib</filename> Directory</title><para>The following table shows
the contents of the <filename>/usr/lib</filename> directory,
which is used for mail services. </para><table frame="topbot" id="ekyfr"><title>Contents
of the <filename>/usr/lib</filename> Directory</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colwidth="16.64*"/><colspec colwidth="10.64*"/><colspec colwidth="47.71*"/><thead><row><entry rowsep="1"><para>Name</para>
</entry><entry rowsep="1"><para>Type</para>
</entry><entry rowsep="1"><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>mail.local</command></para>
</entry><entry><para>File</para>
</entry><entry><para>Mailer that delivers mail to
mailboxes.</para>
</entry>
</row><row><entry><para><command>sendmail</command></para>
</entry><entry><para>File</para>
</entry><entry><para>Routing program, also known
as the mail transfer agent.</para>
</entry>
</row><row><entry><para><command>smrsh</command></para>
</entry><entry><para>File</para>
</entry><entry><para>Shell program (sendmail restricted
shell) that uses the <literal>&ldquo;|program&rdquo;</literal> syntax of <command>sendmail</command> to
restrict programs that <command>sendmail</command> can
run to those programs listed in the <filename>/var/adm/sm.bin</filename> directory.
Refer to the <olink targetdoc="refman1m" targetptr="smrsh-1m" remap="external"><citerefentry><refentrytitle>smrsh</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for recommendations about what
to include in <filename>/var/adm/sm.bin</filename>.
To enable, include this <command>m4</command> command, <command>FEATURE(`smrsh'</command>), in your <filename>mc</filename> file.</para>
</entry>
</row><row><entry><para><filename>mail</filename></para>
</entry><entry><para>symbolic link</para>
</entry><entry><para>A symbolic link points to the<filename>/etc/mail/cf</filename> directory.
For more information, refer to <olink targetptr="mailrefer-126" remap="internal">Contents
of the /etc/mail/cf Directory</olink>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-83"><title>Other
Files Used for Mail Services</title><para>Several other files and directories
are used for mail services, as shown
in <olink targetptr="mailintro-tbl-31" remap="internal">Table
14&ndash;11</olink>.</para><table frame="topbot" id="mailintro-tbl-31"><title>Other
Files Used for Mail Services</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="176*"/><colspec colname="column2" colwidth="54*"/><colspec colname="column3" colwidth="166*"/><thead><row rowsep="1"><entry><para>Name</para>
</entry><entry><para>Type</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><filename>/etc/default/sendmail</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Lists the environment variables
for the startup script for <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>/etc/shells</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Lists the valid login shells.</para>
</entry>
</row><row><entry><para><filename>/etc/mail/cf/sh</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Contains shell scripts that
are used by the <command>m4</command> build
process and migration aids.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/check-permissions</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Checks permissions of <literal>:include:</literal> aliases and <filename>.forward</filename> files and their parent
directory path for correct permissions.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/check-hostname</filename> </para>
</entry><entry><para>File</para>
</entry><entry><para>Verifies that <command>sendmail</command> is
able to determine the fully qualified
host name.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/editmap</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Queries and edits single records
in database maps for <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/in.comsat</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>Mail notification daemon.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/makemap</filename> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>Builds binary forms of keyed
maps.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/newaliases</filename></para>
</entry><entry><para>Symbolic Link</para>
</entry><entry><para>A symbolic link to <filename>/usr/lib/sendmail</filename>. Used to create the binary
form of the alias database. Previously
in <filename>/usr/bin</filename>.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/syslogd</filename> 
 </para>
</entry><entry><para>File</para>
</entry><entry><para>Error message logger, used by <command>sendmail</command>.</para>
</entry>
</row><row><entry><para><filename>/usr/sbin/etrn</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Perl script for starting the
client-side remote mail queue.</para>
</entry>
</row><row><entry><para><filename>/usr/dt/bin/dtmail</filename>  </para>
</entry><entry><para>File</para>
</entry><entry><para>CDE mail user agent.</para>
</entry>
</row><row><entry><para><filename>/var/mail/<replaceable>mailbox1</replaceable></filename>, <filename>/var/mail/<replaceable>mailbox2</replaceable></filename></para>
</entry><entry><para>File</para>
</entry><entry><para>Mailboxes for delivered mail.</para>
</entry>
</row><row><entry><para><filename>/var/spool/clientmqueue</filename></para>
</entry><entry><para>Directory</para>
</entry><entry><para>Storage for mail that is delivered
by the client daemon.</para>
</entry>
</row><row><entry><para><filename>/var/spool/mqueue</filename> </para>
</entry><entry><para>Directory</para>
</entry><entry><para>Storage for mail that is delivered
by the master daemon.</para>
</entry>
</row><row><entry><para><filename>/var/run/sendmail.pid</filename></para>
</entry><entry><para>File</para>
</entry><entry><para>File that lists the PID of the
listening daemon.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-84"><title>Interactions
of Mail Programs</title><para>Mail services are provided
by a combination of the following
programs, which interact as shown
in the simplified illustration in <olink targetptr="mailintro-fig-32" remap="internal">Figure
14&ndash;2</olink>.</para><figure id="mailintro-fig-32"><title>Interactions
of Mail Programs</title><mediaobject><imageobject><imagedata entityref="fig35.epsi"/>
</imageobject><textobject><simpara>The context describes
the graphic.</simpara>
</textobject>
</mediaobject>
</figure><para>The following is a description
of the interactions of mail programs.</para><orderedlist><listitem><para>Users send messages
by using programs such as <command>mailx</command>.
See the man page for <olink targetdoc="refman1" targetptr="mailx-1" remap="external"><citerefentry><refentrytitle>mailx</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> for
more information.</para>
</listitem><listitem><para>The message is collected
by the program that generated the
message, and the message is passed
to the <command>sendmail</command> daemon.</para>
</listitem><listitem><para>The <command>sendmail</command> daemon <emphasis>parses</emphasis> the addresses (divides
them into identifiable segments) in
the message. The daemon uses information
from the configuration file, <filename>/etc/mail/sendmail.cf</filename>, to determine network
name syntax, aliases, forwarding information,
and network topology. By using this
information, <command>sendmail</command> determines
which route a message must follow
to get to a recipient.</para>
</listitem><listitem><para>The <command>sendmail</command> daemon
passes the message to the appropriate
system.</para>
</listitem><listitem><para>The <command>/usr/lib/mail.local</command> program on the local system
delivers the mail to the mailbox in
the <filename>/var/mail/<replaceable>username</replaceable></filename> directory
of the recipient of the message.</para>
</listitem><listitem><para>The recipient is notified
that mail has arrived and retrieves
the mail by using <command>mail</command>, <command>mailx</command>, or a similar program.</para>
</listitem>
</orderedlist>
</sect2><sect2 id="mailrefer-46"><title><command>sendmail</command> Program</title><para>The following list describes
some of the capabilities of the <command>sendmail</command> program.</para><itemizedlist><listitem><para><command>sendmail</command> can
use different types of communications
protocols, such as TCP/IP and UUCP.</para>
</listitem><listitem><para><command>sendmail</command> implements
an SMTP server, message queuing, and
mailing lists.</para>
</listitem><listitem><para><command>sendmail</command> controls
name interpretation by using a pattern-matching
system that can work with the following
naming conventions.</para><itemizedlist><listitem><para>Domain-based naming
convention. The domain technique separates
the issue of physical from logical
naming. For more information about
domains, refer to <olink targetptr="mailrefer-59" remap="internal">Mail Addresses</olink>.</para>
</listitem><listitem><para>Improvised techniques,
such as providing network names that
appear local to hosts on other networks.</para>
</listitem><listitem><para>Arbitrary (older)
naming syntaxes.</para>
</listitem><listitem><para>Disparate naming schemes.</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist><para>The Solaris operating system
uses the <command>sendmail</command> program
as a mail router. The following list
describes some of its functions.</para><itemizedlist><listitem><para><command>sendmail</command> is
responsible for receiving and delivering
email messages to a local delivery
agent, such as <command>mail.local</command> or <command>procmail</command>.</para>
</listitem><listitem><para><command>sendmail</command> is
a mail transfer agent that accepts
messages from user agents, such as <command>mailx</command> and Mozilla Mail,
and routes the messages through the
Internet to their destination. </para>
</listitem><listitem><para><command>sendmail</command> controls
email messages that users send.</para><itemizedlist><listitem><para>By evaluating the
recipients' addresses</para>
</listitem><listitem><para>By choosing an appropriate
delivery program</para>
</listitem><listitem><para>By rewriting the addresses
in a format that the delivery agent
can handle</para>
</listitem><listitem><para>By reformatting the
mail headers as required</para>
</listitem><listitem><para>By finally passing
the transformed message to the mail
program for delivery</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist><para>For more information about the <command>sendmail</command> program, refer
to the following topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-89" remap="internal">sendmail
and Its Rerouting Mechanisms</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-79" remap="internal">sendmail
Features</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-80" remap="internal">sendmail
Configuration File</olink></para>
</listitem>
</itemizedlist><sect3 id="mailrefer-89"><title><command>sendmail</command> and Its Rerouting
Mechanisms</title><para>The <command>sendmail</command> program
supports three mechanisms for mail
rerouting. The mechanism that you
choose depends on the type of change
that is involved.</para><itemizedlist><listitem><para>A server change</para>
</listitem><listitem><para>A domain-wide change</para>
</listitem><listitem><para>A change for one user</para>
</listitem>
</itemizedlist><para>Additionally, the rerouting
mechanism that you choose can affect
the level of administration that is
required. Consider the following options.</para><orderedlist><listitem><para>One rerouting mechanism
is <emphasis>aliasing</emphasis>.</para><para>Aliasing can map names to addresses
on a server-wide basis or a name service-wide
basis, depending on the type of file
that you use.</para><para>Consider
the following advantages and disadvantages
of name service aliasing.</para><itemizedlist><listitem><para>The use of a name
service alias file permits mail rerouting
changes to be administered from a
single source. However, name service
aliasing can create lag time when
the rerouting change is propagated.</para>
</listitem><listitem><para>Name service administration
is usually restricted to a select
group of system administrators. A
normal user would not administer this
file.</para>
</listitem>
</itemizedlist><para>Consider the following advantages
and disadvantages of using a server
alias file.</para><itemizedlist><listitem><para>By using a server
alias file, rerouting can be managed
by anyone who can become <filename>root</filename> on
the designated server.</para>
</listitem><listitem><para>Server aliasing should
create little or no lag time when
the rerouting change is propagated.</para>
</listitem><listitem><para>The change only affects
the local server, which might be acceptable
if most of the mail is sent to one
server. However, if you need to propagate
this change to many mail servers,
use a name service.</para>
</listitem><listitem><para>A normal user would
not administer this change.</para>
</listitem>
</itemizedlist><para>For more information, refer
to <olink targetptr="mailrefer-33" remap="internal">Mail
Alias Files</olink> in this chapter.
For a task map, refer to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</listitem><listitem><para>The next mechanism
is <emphasis>forwarding</emphasis>.</para><para>This mechanism permits users
to administer mail rerouting. Local
users can reroute their incoming mail
to the following.</para><itemizedlist><listitem><para>Another mailbox</para>
</listitem><listitem><para>A different mailer</para>
</listitem><listitem><para>Another mail host</para>
</listitem>
</itemizedlist><para>This mechanism is supported
through the use of <filename>.forward</filename> files.
For more information about these files,
refer to <olink targetptr="mailrefer-39" remap="internal">.forward Files</olink> in this chapter.
For a task map, refer to <olink targetptr="mailadmin-264" remap="internal">Administering
.forward Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</listitem><listitem><para>The last rerouting
mechanism is <emphasis>inclusion</emphasis>.</para><para>This mechanism allows
users to maintain alias lists instead
of requiring <filename>root</filename> access.
To provide this feature, the <filename>root</filename> user must create an appropriate
entry in the alias file on the server.
After this entry is created, the user
can reroute mail as necessary. For
more information about inclusion,
refer to <olink targetptr="mailrefer-35" remap="internal">/etc/mail/aliases File</olink> in
this chapter. For a task map, refer
to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><note><para>Programs that read mail,
such as <filename>/usr/bin/mailx</filename>,
can have aliases of their own, which
are expanded before the message reaches <command>sendmail</command>. The aliases for <command>sendmail</command> can originate from
a number of name service sources,
such as local files, NIS, or NIS+.
The order of the lookup is determined
by the <filename>nsswitch.conf</filename> file.
Refer to the <olink targetdoc="refman4" targetptr="nsswitch.conf-4" remap="external"><citerefentry><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
page.</para>
</note>
</listitem>
</orderedlist>
</sect3><sect3 id="mailrefer-79"><title><command>sendmail</command> Features</title><para>The <command>sendmail</command> program
provides the following features.</para><itemizedlist><listitem><para><command>sendmail</command> is
reliable. The program is designed
to correctly deliver every message.
No message should ever become completely
lost.</para>
</listitem><listitem><para><command>sendmail</command> uses
existing software for delivery whenever
possible. For example, the user interacts
with a mail-generating and a mail-sending
program. When mail is submitted, the
mail-generating program calls <command>sendmail</command>, which routes the message
to the correct mailers. Because some
of the senders might be network servers
and some of the mailers might be network
clients, <command>sendmail</command> can
be used as an Internet mail gateway.
See <olink targetptr="mailrefer-84" remap="internal">Interactions
of Mail Programs</olink> for a more
detailed description of the process.</para>
</listitem><listitem><para><command>sendmail</command> can
be configured to handle complex environments,
including multiple networks. <filename>sendmail</filename> checks the contents of
an address as well as its syntax to
determine which mailer to use.</para>
</listitem><listitem><para><command>sendmail</command> uses
configuration files to control mail
configuration instead of requiring
that configuration information be
compiled into the code.</para>
</listitem><listitem><para>Users can maintain
their own mailing lists. Additionally,
individuals can specify their own
forwarding mechanism without modifying
the domain-wide alias file, typically
located in the domain-wide aliases
that are maintained by NIS or NIS+.</para>
</listitem><listitem><para>Each user can specify
a custom mailer to process incoming
mail. The custom mailer can provide
functions such as returning a message
that reads: &ldquo;I am on vacation.&rdquo;
See the <olink targetdoc="refman1" targetptr="vacation-1" remap="external"><citerefentry><refentrytitle>vacation</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man
page for more information.  </para>
</listitem><listitem><para><command>sendmail</command> batches
addresses to a single host to reduce
network traffic.</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-80"><title><command>sendmail</command> Configuration File</title><para>A <emphasis>configuration file</emphasis> controls
the way that <command>sendmail</command> performs
its functions. The configuration file
determines the choice of delivery
agents, address rewriting rules, and
the format of the mail header. The <command>sendmail</command> program uses the
information from the <filename>/etc/mail/sendmail.cf</filename> file to perform its functions. </para><para>The Solaris operating system
provides two default configuration
files in the <filename>/etc/mail</filename> directory.</para><orderedlist><listitem><para><filename>sendmail.cf</filename>,
a configuration file that is used
to run <command>sendmail</command> in
daemon mode.</para>
</listitem><listitem><para><filename>submit.cf</filename>,
a configuration file that is used
to run <command>sendmail</command> in
mail-submission program mode, instead
of daemon mode. For more information,
refer to <olink targetptr="mailrefer-106" remap="internal">submit.cf Configuration File From
Version 8.12 of sendmail</olink>.</para>
</listitem>
</orderedlist><itemizedlist><para>When setting up mail clients,
mail servers, mail hosts, or mail
gateways, consider the following:</para><listitem><para>For mail clients or mail
servers, you do not need to do anything
to set up or edit the default configuration
file. </para>
</listitem><listitem><para>To set up a mail host
or mail gateway, you need to set the
relay mailer and relay host parameters
that are needed for your mail configuration.
For task information, refer to <olink targetptr="mailadmin-263" remap="internal">Setting
Up Mail Services (Task Map)</olink> or <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>. Note
that with <command>sendmail</command> version
8.13, you no longer need the <filename>main.cf</filename> file. </para>
</listitem>
</itemizedlist><para>The following list describes
some configuration parameters that
you can change, depending on the requirements
of your site.</para><itemizedlist><listitem><para>Time values, which
specify the following information.</para><itemizedlist><listitem><para>Read timeouts.</para>
</listitem><listitem><para>Length of time a message
remains undelivered in the queue before
the message is returned to the sender.
Refer to <olink targetptr="mailrefer-119" remap="internal">Additional Queue Features From Version
8.12 of sendmail</olink>. For a task
map, refer to <olink targetptr="mailadmin-262" remap="internal">Administering
the Queue Directories (Task Map)</olink>.</para>
</listitem>
</itemizedlist>
</listitem><listitem><para>Delivery modes, which
specify how quickly mail is delivered.</para>
</listitem><listitem><para>Load limits, which
increase efficiency during busy periods.
These parameters prevent <command>sendmail</command> from attempting to deliver
large messages, messages to many recipients,
and messages to sites that have been
down for a long time.</para>
</listitem><listitem><para>Log level, which specifies
the kinds of problems that are logged. </para>
</listitem>
</itemizedlist>
</sect3>
</sect2><sect2 id="mailrefer-33"><title>Mail
Alias Files</title><para>You can use any of the
following files, maps, or tables to
maintain aliases. </para><itemizedlist><listitem><para><olink targetptr="mailrefer-34" remap="internal">.mailrc Aliases</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-35" remap="internal">/etc/mail/aliases
File</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-36" remap="internal">NIS aliases
Map</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-37" remap="internal">NIS+ mail_aliases
Table</olink></para>
</listitem>
</itemizedlist><para>Your method of maintaining aliases
depends on who uses the alias and
who needs to be able to change the
alias. Each type of alias has unique
format requirements.</para><para>If you are looking for task
information, refer to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><sect3 id="mailrefer-34"><title><command>.mailrc</command> Aliases</title><para>Aliases that are listed
in a <filename>.mailrc</filename> file
are accessible only by the user who
owns the file. This restriction enables
users to establish an alias file that
they control and that is usable only
by its owner. Aliases in a <filename>.mailrc</filename> file adhere to the following
format.</para><screen>alias <replaceable>aliasname value value value</replaceable> ...</screen><para><replaceable>aliasname</replaceable> is
the name that the user uses when sending
mail, and <replaceable>value</replaceable> is
a valid email address.</para><para>If a user establishes a personal
alias for <literal>scott</literal> that
does not match the email address for <literal>scott</literal> in the name service,
an error occurs. Mail is routed to
the wrong person when people try to
reply to mail that is generated by
this user. The only workaround is
to use any of the other aliasing mechanisms.</para>
</sect3><sect3 id="mailrefer-35"><title><filename>/etc/mail/aliases</filename> File</title><para>Any alias that is established
in the <filename>/etc/mail/aliases</filename> file
can be used by any user who knows
the name of the alias and the host
name of the system that contains the
file. Distribution list formats in
a local <filename>/etc/mail/aliases</filename> file
adhere to the following format.</para><screen><replaceable>aliasname</replaceable>: <replaceable>value,value,value</replaceable> ...</screen><para><emphasis>aliasname</emphasis> is
the name that the user uses when sending
mail to this alias, and <emphasis>value</emphasis> is
a valid email address.</para><para>If your network is not running
a name service, the <filename>/etc/mail/aliases</filename> file of each system should
contain entries for all mail clients.
You can either edit the file on each
system or edit the file on one system
and copy the file to each of the other
systems.</para><para>The aliases in the <filename>/etc/mail/aliases</filename> file are stored in text
form. When you edit the <filename>/etc/mail/aliases</filename> file, you need to run
the <filename>newaliases</filename> program.
This program recompiles the database
and makes the aliases available in
binary form to the <filename>sendmail</filename> program.
For task information, refer to <olink targetptr="mailadmin-106" remap="internal">How to Set
Up a Local Mail Alias File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>. Otherwise,
you can use the Mailing List feature
in the Solaris Management Console
to administer the mail aliases that
are stored in the local <filename>/etc</filename> files.</para><para>You can create aliases for only
local names, such as a current host
name or no host name. For example,
an alias entry for user <filename>ignatz</filename> who
has a mailbox on the system <filename>saturn</filename> would have the following
entry in the <filename>/etc/mail/aliases</filename> file.</para><screen>ignatz: ignatz@saturn</screen><para>You should create an administrative
account for each mail server.  You
create such an account by assigning
a mailbox on the mail server to <filename>root</filename> and by adding an entry
for <filename>root</filename> to the <filename>/etc/mail/aliases</filename> file.
For example, if the system <filename>saturn</filename> is a mailbox server, add
the entry <filename>root:</filename> <filename>sysadmin@saturn</filename> to the <filename>/etc/mail/aliases</filename> file.
 </para><para>Normally, only the <filename>root</filename> user can edit this
file. However, when you use the Solaris
Management Console, all users in group
14, which is the sysadmin group, can
change the local file. Another option
is to create the following entry.</para><screen><replaceable>aliasname</replaceable>: :include:<emphasis>/</emphasis><replaceable>path</replaceable><emphasis>/</emphasis><replaceable>aliasfile</replaceable></screen><para><emphasis>aliasname</emphasis> is
the name that the user uses when sending
mail, and <emphasis>/path/aliasfile</emphasis> is
the full path to the file that contains
the alias list. The alias file should
include email entries, one entry on
each line, and no other notations.</para><screen><replaceable>user1@host1</replaceable>
<replaceable>user2@host2</replaceable></screen><para>You can define additional mail
files in <filename>/etc/mail/aliases</filename> to
keep a log or a backup copy.  The
following entry stores all mail that
is sent to <replaceable>aliasname</replaceable> in <replaceable>filename</replaceable>.</para><screen><replaceable>aliasname</replaceable>: /home/backup/<replaceable>filename</replaceable></screen><para>You can also route the mail
to another process. The following
example stores a copy of the mail
message in <replaceable>filename</replaceable> and
prints a copy.</para><screen><replaceable>aliasname</replaceable>: "|tee -a /home/backup/<replaceable>filename</replaceable> |lp"</screen><para>For a task map, refer to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect3><sect3 id="mailrefer-36"><title>NIS <literal>aliases</literal> Map</title><para>All users in a local domain
can use the entries that are in the
NIS <literal>aliases</literal> map.
The reason is that the <command>sendmail</command> program
can use the NIS <literal>aliases</literal> map
instead of the local <filename>/etc/mail/aliases</filename> files to determine mailing
addresses. For more information, refer
to the <olink targetdoc="refman4" targetptr="nsswitch.conf-4" remap="external"><citerefentry><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
page.</para><para>Aliases in the NIS <literal>aliases</literal> map adhere to the following
format.</para><screen><replaceable>aliasname</replaceable>: <replaceable>value,value,value</replaceable> ...</screen><para><emphasis>aliasname</emphasis> is
the name that the user uses when sending
mail, and <emphasis>value</emphasis> is
a valid email address.</para><para>The NIS <literal>aliases</literal> map
should contain entries for all mail
clients. In general, only the root
user on the NIS master can change
these entries. This type of alias
might not be a good choice for aliases
that are constantly changing. However,
such aliases can be useful if the
aliases point to another alias file,
as in the following syntax example.</para><screen><replaceable>aliasname</replaceable>: <replaceable>aliasname@host</replaceable></screen><para><replaceable>aliasname</replaceable> is
the name that the user uses when sending
mail, and <replaceable>host</replaceable> is
the host name for the server that
contains an <filename>/etc/mail/alias</filename> file.</para><para>For task information, refer
to <olink targetptr="mailadmin-93" remap="internal">How
to Set Up an NIS mail.aliases Map</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect3><sect3 id="mailrefer-37"><title>NIS+ <literal>mail_aliases</literal> Table</title><para>The NIS+ <literal>mail_aliases</literal> table contains the names
by which a system or person is known
in the local domain. The <command>sendmail</command> program can use the NIS+ <literal>mail_aliases</literal> table, instead
of the local <filename>/etc/mail/aliases</filename> files,
to determine mailing addresses. Refer
to the <olink targetdoc="refman1m" targetptr="aliasadm-1m" remap="external"><citerefentry><refentrytitle>aliasadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="refman4" targetptr="nsswitch.conf-4" remap="external"><citerefentry><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
pages for more information.</para><para>Aliases in the NIS+ <literal>mail_aliases</literal> table adhere to the following
format:</para><screen><replaceable>alias</replaceable>: <replaceable>expansion</replaceable> # ["<replaceable>options</replaceable>" # "<replaceable>comments</replaceable>"]</screen><para><olink targetptr="mailrefer-tbl-38" remap="internal">Table 14&ndash;12</olink> describes
the four columns that are in an NIS+ <literal>mail_aliases</literal> table.</para><table frame="topbot" id="mailrefer-tbl-38"><title>Columns
in the NIS+ <literal>mail_aliases</literal> Table</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colnum="1" colname="column1" colwidth="2*"/><colspec colnum="2" colname="column2" colwidth="7*"/><thead><row rowsep="1"><entry><para>Column</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>alias</literal></para>
</entry><entry><para>The name of the alias</para>
</entry>
</row><row><entry><para><literal>expansion</literal></para>
</entry><entry><para>The value of the alias or a
list of aliases as it would appear
in a <command>sendmail</command> <filename>/etc/mail/aliases</filename> file</para>
</entry>
</row><row><entry><para><literal>options</literal></para>
</entry><entry><para>The column that is reserved
for future use</para>
</entry>
</row><row><entry><para><literal>comments</literal></para>
</entry><entry><para>The column for comments about
an individual alias</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The NIS+ <literal>mail_aliases</literal> table
should contain entries for all mail
clients. You can list, create, modify,
and delete entries in the NIS+ <literal>aliases</literal> table with the <filename>aliasadm</filename> command. To use the <filename>aliasadm</filename> command, you must
be a member of the NIS+ group that
owns the <literal>aliases</literal> table.
For task information, refer to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>. Alternately,
you can use the Solaris Management
Console to administer the NIS+ mail
aliases.</para><note><para>If you are creating a
new NIS+ <literal>aliases</literal> table,
you must initialize the table before
you create the entries. If the table
exists, no initialization is needed.</para>
</note>
</sect3>
</sect2><sect2 id="mailrefer-39"><title><filename>.forward</filename> Files</title><para>Users can create a <filename>.forward</filename> file in their
home directories that <command>sendmail</command>,
along with other programs, can use
to redirect mail or send mail. Refer
to the following topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-97" remap="internal">Situations
to Avoid</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-98" remap="internal">Controls
for .forward files</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-99" remap="internal">.forward.hostname
File</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-100" remap="internal">.forward+detail
File</olink></para>
</listitem>
</itemizedlist><para>For a task map, refer to <olink targetptr="mailadmin-264" remap="internal">Administering
.forward Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><sect3 id="mailrefer-97"><title>Situations
to Avoid</title><para>The following list describes
some situations that you can avoid
or easily fix.</para><itemizedlist><listitem><para>If mail is not being
delivered to the expected address,
check the user's <filename>.forward</filename> file.
The user might have put the <filename>.forward</filename> file in the home directory
of <literal>host1</literal>, which
forwards mail to <literal>user@host2</literal>.
When the mail arrives at <literal>host2</literal>, <command>sendmail</command> checks for <literal>user</literal> in the NIS or NIS+ aliases
and sends the message back to <literal>user@host1</literal>. This routing results in
a loop and more bounced mail.</para>
</listitem><listitem><para>To avoid security
problems, never put <filename>.forward</filename> files
in the <filename>root</filename> and <literal>bin</literal> accounts. If necessary,
forward the mail by using the <filename>aliases</filename> file instead.</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-98"><title>Controls
for <filename>.forward</filename> files</title><para>For the <filename>.forward</filename> files
to be an effective part of mail delivery,
ensure that the following controls
(mostly permissions settings) are
correctly applied.</para><itemizedlist><listitem><para>The <filename>.forward</filename> file
must be writable only by the owner
of the file. This restriction prevents
other users from breaking security.</para>
</listitem><listitem><para>The paths that lead
to the home directory must be owned
and writable by <filename>root</filename> only.
For example, if a <filename>.forward</filename> file
is in <filename>/export/home/terry</filename>, <filename>/export</filename> and <filename>/export/home</filename> must be owned and writable
by <filename>root</filename> only.</para>
</listitem><listitem><para>The actual home directory
should be writable only by the user.</para>
</listitem><listitem><para>The <filename>.forward</filename> file
cannot be a symbolic link, and this
file cannot have more than one hard
link.</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-99"><title><filename>.forward.</filename><replaceable>hostname</replaceable> File</title><para>You can create a <filename>.forward.</filename><replaceable>hostname</replaceable> file
to redirect mail that is sent to a
specific host. For example, if a user's
alias has changed from <literal>sandy@phoenix.example.com</literal> to <literal>sandy@example.com</literal>,
place a <filename>.forward.phoenix</filename> file
in the home directory for <literal>sandy</literal>.</para><screen>% <userinput>cat .forward.phoenix</userinput>
sandy@example.com
"|/usr/bin/vacation sandy"
% <userinput>cat .vacation.msg</userinput>
From: sandy@example.com (via the vacation program)
Subject: my alias has changed

My alias has changed to sandy@example.com.
Please use this alias in the future.
The mail that I just received from you
has been forwarded to my new address.

Sandy</screen><para>In this example, mail can be
forwarded to the correct place while
the sender is notified of the alias
change. Because the <command>vacation</command> program
permits only one message file, you
can forward only one message at a
time. However, if the message is not
host specific, one vacation message
file can be used by <filename>.forward</filename> files
for many hosts.</para>
</sect3><sect3 id="mailrefer-100"><title><filename>.forward+</filename><replaceable>detail</replaceable> File</title><para>Another extension to the
forwarding mechanism is the <filename>.forward+</filename><replaceable>detail</replaceable> file.
The <replaceable>detail</replaceable> string
can be any sequence of characters
except operator characters. The operator
characters are <literal>.:%&amp;!^[]+</literal>.
By using this type of file, you can
determine if someone else is using
your email address without your knowledge.
For instance, if a user tells someone
to use the email address <literal>sandy+test1@example.com</literal>, the user would be able
to identify any future mail that was
delivered to this alias. By default,
any mail that is sent to the <literal>sandy+test1@example.com</literal> alias is checked against
the alias and the <filename>.forward+</filename><replaceable>detail</replaceable> files. If no
matches are made, the mail falls back
to delivery to <literal>sandy@example.com</literal>, but the user is able to
see a change in the <literal>To:</literal> mail
header.</para>
</sect3>
</sect2><sect2 id="mailrefer-44"><title><filename>/etc/default/sendmail</filename> File</title><para>This file is used to store
startup options for <command>sendmail</command> so
that the options are not removed when
a host is upgraded. The following
variables can be used.</para><variablelist termlength="wholeline"><varlistentry><term>CLIENTOPTIONS=&ldquo;<replaceable>string</replaceable>&rdquo;</term><listitem><para>Selects additional
options to be used with the client
daemon, which looks in the client-only
queue (<filename>/var/spool/clientmqueue</filename>)
and acts as a client queue runner.
No syntax checking is done, so be
careful when making changes to this
variable.</para>
</listitem>
</varlistentry><varlistentry><term>CLIENTQUEUEINTERVAL=<replaceable>#</replaceable></term><listitem><para>Similar to the <option role="nodash">QUEUEINTERVAL</option> option, <option role="nodash">CLIENTQUEUEINTERVAL</option> sets
the time interval for mail queue runs.
However, the <option role="nodash">CLIENTQUEUEINTERVAL</option> option controls the functions
of the client daemon, rather than
the functions of the master daemon.
Typically, the master daemon is able
to deliver all messages to the SMTP
port. However, if the message load
is too high or the master daemon is
not running, then messages go into
the client-only queue, <filename>/var/spool/clientmqueue</filename>. The client daemon, which
checks in the client-only queue, then
acts as a client queue processor.</para>
</listitem>
</varlistentry><varlistentry><term>ETRN_HOSTS=&ldquo;<replaceable>string</replaceable>&rdquo;</term><listitem><para>Enables an SMTP client
and server to interact immediately
without waiting for the queue run
intervals, which are periodic. The
server can immediately deliver the
portion of its queue that goes to
the specified hosts. For more information,
refer to the <olink targetdoc="refman1m" targetptr="etrn-1m" remap="external"><citerefentry><refentrytitle>etrn</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem>
</varlistentry><varlistentry><term>MODE=-bd</term><listitem><para>Selects the mode to
start <command>sendmail</command> with.
Use the <option>bd</option> option
or leave it undefined.</para>
</listitem>
</varlistentry><varlistentry><term>OPTIONS=<replaceable>string</replaceable></term><listitem><para>Selects additional
options to be used with the master
daemon. No syntax checking is done,
so be careful when making changes
to this variable.</para>
</listitem>
</varlistentry><varlistentry><term>QUEUEINTERVAL=<replaceable>#</replaceable></term><listitem><para>Sets the interval
for mail queue runs on the master
daemon. <replaceable>#</replaceable> can
be a positive integer that is followed
by either <literal>s</literal> for
seconds, <literal>m</literal> for
minutes, <literal>h</literal> for
hours, <literal>d</literal> for days,
or <literal>w</literal> for weeks.
The syntax is checked before <command>sendmail</command> is started. If the interval
is negative or if the entry does not
end with an appropriate letter, the
interval is ignored and <command>sendmail</command> starts with a queue interval
of 15 minutes.</para>
</listitem>
</varlistentry><varlistentry><term>QUEUEOPTIONS=p</term><listitem><para>Enables one persistent
queue runner that sleeps between queue
run intervals, instead of a new queue
runner for each queue run interval.
You can set this option to <option role="nodash">p</option>, which is
the only setting available. Otherwise,
this option is not set.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="mailrefer-14"><title>Mail
Addresses and Mail Routing</title><para>The path that a mail message
follows during delivery depends on
the setup of the client system and
the topology of the mail domain. Each
additional level of mail hosts or
mail domains can add another alias
resolution, but the routing process
is basically the same on most hosts.</para><para>You can set up a client system
to receive mail locally. Receiving
mail locally is known as running <command>sendmail</command> in local mode.
Local mode is the default for all
mail servers and some clients. On
a mail server or a mail client in
local mode, a mail message is routed
the following way.</para><note><para>The following example
assumes that you are using the default
rule set in the <filename>sendmail.cf</filename> file.</para>
</note><orderedlist><listitem><para>Expand the mail alias,
if possible, and restart the local
routing process.</para><para>The mail
address is expanded by checking for
the mail alias in the name service
and substituting the new value, if
a new value is found. This new alias
is then checked again.</para>
</listitem><listitem><para>If the mail is local,
deliver the mail to <command>/usr/lib/mail.local</command>.</para><para>The mail is
delivered to a local mailbox.</para>
</listitem><listitem><para>If the mail address
includes a host in this mail domain,
deliver the mail to that host.</para>
</listitem><listitem><para>If the address does
not include a host in this domain,
forward the mail to the mail host.</para><para>The mail host uses the same
routing process as the mail server.
However, the mail host can receive
mail that is addressed to the domain
name as well as to the host name.</para>
</listitem>
</orderedlist>
</sect1><sect1 id="mailrefer-24"><title>Interactions
of <command>sendmail</command> With
Name Services</title><para>This section describes domain
names as they apply to <command>sendmail</command> and
name services. Furthermore, this section
describes the rules for effective
use of name services, and the specific
interactions of <command>sendmail</command> with
name services. For details, refer
to the following topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-87" remap="internal">sendmail.cf
and Mail Domains</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-25" remap="internal">sendmail
and Name Services</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-28" remap="internal">Interactions
of NIS and sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-29" remap="internal">Interactions
of sendmail With NIS and DNS</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-30" remap="internal">Interactions
of NIS+ and sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-31" remap="internal">Interactions
of sendmail With NIS+ and DNS</olink></para>
</listitem>
</itemizedlist><para>If you are looking for related
task information, refer to <olink targetptr="mailadmin-122" remap="internal">How to Use
DNS With sendmail</olink> or <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><sect2 id="mailrefer-87"><title><filename>sendmail.cf</filename> and Mail Domains</title><para>The standard <filename>sendmail.cf</filename> file
uses mail domains to determine whether
mail is delivered directly or through
a mail host. Intradomain mail is delivered
through a direct SMTP connection,
while interdomain mail is forwarded
to a mail host.</para><para>In a secure network, only
a few selected hosts are authorized
to generate packets that are targeted
to external destinations. Even if
a host has the IP address of the remote
host that is external to the mail
domain, the establishment of an SMTP
connection is not guaranteed. The
standard <filename>sendmail.cf</filename> assumes
the following.</para><itemizedlist><listitem><para>The current host is
not authorized to send packets directly
to a host outside the mail domain.</para>
</listitem><listitem><para>The mail host is capable
of forwarding the mail to an authorized
host that can transmit packets directly
to an external host. Actually, the
mail host can be an authorized host.</para>
</listitem>
</itemizedlist><para>With these assumptions, the
mail host is responsible for delivering
or forwarding interdomain mail.</para>
</sect2><sect2 id="mailrefer-25"><title><command>sendmail</command> and Name Services</title><para><command>sendmail</command> imposes
various requirements on name services.
To improve your understanding of these
requirements, this section first describes
the relationship of mail domains to
name service domains. Then the section
describes the various requirements.
Refer to the following.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-26" remap="internal">Mail Domains
and Name Service Domains</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-27" remap="internal">Requirements
for Name Services</olink></para>
</listitem><listitem><para>Man pages for <olink targetdoc="refman1" targetptr="lc-nis-plus-1" remap="external"><citerefentry><refentrytitle>nis+</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink>, <olink targetdoc="refman1m" targetptr="nisaddent-1m" remap="external"><citerefentry><refentrytitle>nisaddent</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>,
and <olink targetdoc="refman4" targetptr="nsswitch.conf-4" remap="external"><citerefentry><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para>
</listitem>
</itemizedlist><sect3 id="mailrefer-26"><title>Mail
Domains and Name Service Domains</title><para>The mail domain name must be
a suffix of the name service domain.
For example, if the domain name of
the name service is <literal>A.B.C.D</literal>,
the mail domain name could be one
of the following.</para><itemizedlist><listitem><para><literal>A.B.C.D</literal></para>
</listitem><listitem><para><literal>B.C.D</literal></para>
</listitem><listitem><para><literal>C.D</literal></para>
</listitem><listitem><para><literal>D</literal></para>
</listitem>
</itemizedlist><para>When first established,
the mail domain name is often identical
to the name service domain. As the
network grows, the name service domain
can be divided into smaller pieces
to make the name service more manageable.
However, the mail domain often remains
undivided to provide consistent aliasing.</para>
</sect3><sect3 id="mailrefer-27"><title>Requirements
for Name Services</title><para>This section describes the requirements
that <command>sendmail</command> imposes
on name services.</para><para>A host table or map in a name
service must be set up to support
three types of <function>gethostbyname</function> queries.</para><itemizedlist><listitem><para><literal>mailhost</literal> &ndash;
Some name service configurations satisfy
this requirement automatically.</para>
</listitem><listitem><para>Full host name (for
example, <literal>smith.admin.acme.com</literal>) &ndash;
Many name service configurations satisfy
this requirement.</para>
</listitem><listitem><para>Short host name (for
example, <literal>smith</literal>) &ndash; <command>sendmail</command> must connect to
the mail host in order to forward
external mail. To determine if a mail
address is within the current mail
domain, <function>gethostbyname</function> is
invoked with the full host name. If
the entry is found, the address is
considered internal.</para><para>NIS,
NIS+, and DNS support <function>gethostbyname</function> with a short host name
as an argument, so this requirement
is automatically satisfied.</para>
</listitem>
</itemizedlist><para>Two additional rules about the
host name service need to be followed
to establish efficient <command>sendmail</command> services
within a name service.</para><itemizedlist><listitem><para><function>gethostbyname</function> with
full host-name argument and short
host-name argument should yield consistent
results. For example, <literal>gethostbyname(smith.admin.acme.com)</literal> should return the same
result as <literal>gethostbyname(smith)</literal>,
if both functions are called from
the mail domain <literal>admin.acme.com</literal>.</para>
</listitem><listitem><para>For all name service domains
under a common mail domain, <literal>gethostbyname()</literal> with a short host name
should yield the same result. For
example, if the mail domain <literal>smith.admin.acme.com</literal> is given, <literal>gethostbyname(smith)</literal> should return the same
result when the call originates from
either the <literal>ebb.admin.acme.com</literal> domain
or the <literal>esg.admin.acme.com</literal> domain.
The mail domain name is usually shorter
than the name service domain, which
gives this requirement special implications
for various name services.</para>
</listitem>
</itemizedlist><para>For more information about the <function>gethostbyname</function> function,
refer to the <olink targetdoc="refman3b" targetptr="gethostbyname-3nsl" remap="external"><citerefentry><refentrytitle>gethostbyname</refentrytitle><manvolnum>3NSL</manvolnum></citerefentry></olink> man page.</para>
</sect3>
</sect2><sect2 id="mailrefer-28"><title>Interactions
of NIS and <command>sendmail</command></title><para>The following list describes
the interactions of <command>sendmail</command> and
NIS and provides some guidance.</para><itemizedlist mark="bullet"><listitem><para><emphasis role="strong">Mail
domain name</emphasis> &ndash; If
you are setting up NIS as the primary
name service, <command>sendmail</command> automatically
strips the first component of the
NIS domain name and uses the result
as the mail domain name. For example, <literal>ebs.admin.acme.com</literal> becomes <literal>admin.acme.com</literal>.</para>
</listitem><listitem><para><emphasis role="strong">Mail
host name</emphasis> &ndash; You must
have a <literal>mailhost</literal> entry
in the NIS host map.</para>
</listitem><listitem><para><emphasis role="strong">Full
host names</emphasis> &ndash; The
normal NIS setup does not &ldquo;understand&rdquo;
the full host name. Rather than trying
to make NIS understand the full host
name, turn off this requirement from
the <command>sendmail</command> side
by editing the <filename>sendmail.cf</filename> file
and replacing all occurrences of <literal>%l</literal> with <literal>%y</literal>.
This change turns off <command>sendmail</command>'s
interdomain mail detection. If the
target host can be resolved to an
IP address, a direct SMTP delivery
is attempted. Ensure that your NIS
host map does not contain any host
entry that is external to the current
mail domain. Otherwise, you need to
further customize the <filename>sendmail.cf</filename> file.</para>
</listitem><listitem><para><emphasis role="strong">Matching
full host names and short host names</emphasis> &ndash;
Follow the previous instructions about
how to turn off <function>gethostbyname</function> for
a full host name.</para>
</listitem><listitem><para><emphasis role="strong">Multiple
NIS domains in one mail domain</emphasis> &ndash;
All NIS host maps under a common mail
domain should have the same set of
host entries. For example, the host
map in the <literal>ebs.admin.acme.com</literal> domain
should be the same as the host map
in the <literal>esg.admin.acme.com</literal>.
Otherwise, one address might work
in one NIS domain, but fail in the
other NIS domain. </para>
</listitem>
</itemizedlist><para>For task information, refer
to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2><sect2 id="mailrefer-29"><title>Interactions
of <command>sendmail</command> With
NIS and DNS</title><para>The following list describes
the interactions of <command>sendmail</command> with
NIS and DNS and provides some guidance.</para><itemizedlist mark="bullet"><listitem><para><emphasis role="strong">Mail
domain name</emphasis> &ndash; If
you are setting up NIS as the primary
name service, <command>sendmail</command> automatically
strips the first component of the
NIS domain name and uses the result
as the mail domain name. For example, <literal>ebs.admin.acme.com</literal> becomes <literal>admin.acme.com</literal>.</para>
</listitem><listitem><para><emphasis role="strong">Mail
host name</emphasis> &ndash; When
the DNS forwarding feature is turned
on, queries that NIS cannot resolve
are forwarded to DNS, so you do not
need a <literal>mailhost</literal> entry
in the NIS host map. </para>
</listitem><listitem><para><emphasis role="strong">Full
host names</emphasis> &ndash; Although
NIS does not &ldquo;understand&rdquo;
full host names, DNS does understand.
This requirement is satisfied when
you follow the regular procedure for
setting up NIS and DNS. </para>
</listitem><listitem><para><emphasis role="strong">Matching
full host names and short host names</emphasis> &ndash;
For every host entry in the NIS host
table, you must have a corresponding
host entry in DNS.</para>
</listitem><listitem><para><emphasis role="strong">Multiple
NIS domains in one mail domain</emphasis> &ndash;
All NIS host maps under a common mail
domain should have the same set of
host entries. For example, the host
map in the <literal>ebs.admin.acme.com</literal> domain
should be the same as the host map
in the <literal>esg.admin.acme.com</literal> domain.
Otherwise, one address might work
in one NIS domain, but fail in the
other NIS domain.</para>
</listitem>
</itemizedlist><para>For task information, refer
to <olink targetptr="mailadmin-122" remap="internal">How
to Use DNS With sendmail</olink> and <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2><sect2 id="mailrefer-30"><title>Interactions
of NIS+ and <command>sendmail</command></title><para>The following list describes
the interactions of <command>sendmail</command> with
NIS+ and provides some guidance.</para><itemizedlist mark="bullet"><listitem><para><emphasis role="strong">Mail
domain name</emphasis> &ndash; If
you are setting up NIS+ as your primary
name service, <command>sendmail</command> can
check the mail domain from the NIS+ <filename>sendmailvars</filename> table. This
NIS+ table has one key column and
one value column. To set up your mail
domain, you must add one entry to
this table. This entry should have
the key column set to the literal
string <literal>maildomain</literal> and
the value column set to your mail
domain name. An example is <literal>admin.acme.com</literal>. Although NIS+ allows any
string in the <filename>sendmailvars</filename> table,
the suffix rule still applies for
the mail system to work correctly.
You can use <literal>nistbladm</literal> to
add the <literal>maildomain</literal> entry
to the <filename>sendmailvars</filename> table.
Notice in the following example that
the mail domain is a suffix of the
NIS+ domain.</para><screen>nistbladm -A key="maildomain" value=&lt;mail domain> sendmailvars.org_dir.&lt;NIS+ domain></screen>
</listitem><listitem><para><emphasis role="strong">Mailhost
host name</emphasis> &ndash; You must
have a <literal>mailhost</literal> entry
in the NIS+ hosts table.</para>
</listitem><listitem><para><emphasis role="strong">Full
host names</emphasis> &ndash; NIS+ &ldquo;understands&rdquo;
the full host name. Following the
regular NIS+ setup procedure satisfies
this requirement.</para>
</listitem><listitem><para><emphasis role="strong">Matching
full host names and short host names</emphasis> &ndash;
To satisfy this requirement, you can
duplicate the entries in the host
table. Otherwise, you can enter all
host entries in the user name-service
domains into a master host table at
mail domain level. </para>
</listitem><listitem><para><emphasis role="strong">Multiple
NIS domains in one mail domain</emphasis> &ndash;
To satisfy this requirement, you can
duplicate the entries in all the host
tables. Otherwise, you can type all
host entries in the user name service
domains into a master host table at
mail domain level. Effectively, you
are merging multiple host tables that
are logical or physical into one host
table. Therefore, the same host name
cannot be reused in the multiple name
service domain that shares a common
mail domain.</para>
</listitem>
</itemizedlist><para>For task information, refer
to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2><sect2 id="mailrefer-31"><title>Interactions
of <command>sendmail</command> With
NIS+ and DNS</title><para>The following list describes
the interactions of <command>sendmail</command> with
NIS+ and DNS and provides some guidance.</para><itemizedlist mark="bullet"><listitem><para><emphasis role="strong">Mail
domain name</emphasis> &ndash; If
you are setting up NIS+ as your primary
name service, <command>sendmail</command> can
check the mail domain from the NIS+ <filename>sendmailvars</filename> table. This
NIS+ table has one key column and
one value column. To set up your mail
domain, you must add one entry to
this table. This entry should have
the key column set to the literal
string <literal>maildomain</literal> and
the value column set to your mail
domain name. An example is <literal>admin.acme.com</literal>. Although NIS+ allows any
string in the <filename>sendmailvars</filename> table,
the suffix rule still applies for
the mail system to work correctly.
You can use <literal>nistbladm</literal> to
add the <literal>maildomain</literal> entry
to the <filename>sendmailvars</filename> table.
Notice in the following example that
the mail domain is a suffix of the
NIS+ domain.</para><screen>nistbladm -A key="maildomain" value=&lt;mail domain> sendmailvars.org_dir.&lt;NIS+ domain></screen>
</listitem><listitem><para><emphasis role="strong">Mailhost
host name</emphasis> &ndash; If your
network uses both NIS+ and DNS as
the source for the host database,
you can put the <literal>mailhost</literal> entry
in either the NIS+ or DNS host table.
Ensure that your users include both
NIS+ and DNS as the source for the
host database in the <filename>/etc/nsswitch.conf</filename> file.</para>
</listitem><listitem><para><emphasis role="strong">Full
host names</emphasis> &ndash; Both
NIS+ and DNS &ldquo;understand&rdquo;
full host names. Following the regular
NIS+ and DNS setup procedures satisfies
this requirement.</para>
</listitem><listitem><para><emphasis role="strong">Matching
full host names and short host names</emphasis> &ndash;
For every host entry in the NIS+ host
table, you must have a corresponding
host entry in DNS.</para>
</listitem><listitem><para><emphasis role="strong">Multiple
NIS domains in one mail domain</emphasis> &ndash;
To satisfy this requirement, you can
duplicate the entries in all the host
tables. Alternately, you can type
all host entries in the user name-service
domains into a master host table at
the mail domain level.</para>
</listitem>
</itemizedlist><para>For task information, refer
to <olink targetptr="mailadmin-260" remap="internal">Administering
Mail Alias Files (Task Map)</olink> and <olink targetptr="mailadmin-122" remap="internal">How to Use
DNS With sendmail</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2>
</sect1><sect1 id="evemx"><title>Changes in
Version 8.13 of <command>sendmail</command></title><para>Starting in the Solaris 10 release,
version 8.13 is the default. Although
this new version of <command>sendmail</command> provides
many new features, the <option role="nodash">FallBackSmartHost</option> option
is the most significant addition.
Because of this option you no longer
need to use <filename>main.cf</filename> and <filename>subsidiary.cf</filename>. The <filename>main.cf</filename> file was used in environments
that supported MX records. The <filename>subsidiary.cf</filename> file was
used in environments without a fully
operative DNS. In such environments
a smart host was used instead of MX
records. The <option role="nodash">FallBackSmartHost</option> option provides unified
configuration. It operates like an
MX record of last possible preference
for all environments. To ensure that
mail gets delivered to clients, this
option, if enabled, provides a well-connected
(or smart) host that serves as a backup
(or failover) for MX records that
fail.</para><itemizedlist><para>For more information about version
8.13, see the following sections:</para><listitem><para><olink targetptr="evemy" remap="internal">Additional Command-Line Options in
Version 8.13 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="evenf" remap="internal">Additional and Revised Configuration
File Options in Version 8.13 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="evenm" remap="internal">Additional and Revised FEATURE() Declarations in Version 8.13 of sendmail</olink></para>
</listitem>
</itemizedlist><para>Additionally, starting in the
Solaris 10 1/06 release, SMTP can
run with Transport Layer Security
(TLS). See the following description.</para><sect2 id="fvbrb"><title>Support for
Running SMTP With TLS in Version 8.13
of <command>sendmail</command></title><itemizedlist><para>Communications between SMTP
servers and clients are not usually
controlled or trusted on either end.
This lack of security might allow
a third party to monitor and even
alter a communication between a server
and a client. Starting in the Solaris
10 1/06 release, SMTP can use Transport
Layer Security (TLS) in version 8.13
of <command>sendmail</command> to
resolve this problem. This extended
service to SMTP servers and clients
provides the following:</para><listitem><para>Private,
authenticated communications over
the Internet</para>
</listitem><listitem><para>Protection from eavesdroppers
and attackers</para>
</listitem>
</itemizedlist><note><para>The implementation of
TLS is based on the Secure Sockets
Layer (SSL) protocol.</para>
</note><itemizedlist><para><command>STARTTLS</command> is
the SMTP keyword that initiates a
secure SMTP connection by using TLS.
This secure connection might be between
two servers or between a server and
a client. A secure connection is defined
as follows:</para><listitem><para>The source email address
and the destination address are encrypted.</para>
</listitem><listitem><para>The content of the
email message is encrypted.</para>
</listitem>
</itemizedlist><itemizedlist><para>When the client issues the <command>STARTTLS</command> command, the server
responds with one of the following:</para><listitem><para><literal>220 Ready
to start TLS</literal></para>
</listitem><listitem><para><literal>501 Syntax
error (no parameters allowed)</literal></para>
</listitem><listitem><para><literal>454 TLS not
available due to temporary reason</literal></para>
</listitem>
</itemizedlist><para>The <literal>220</literal> response
requires the client to start the TLS
negotiation. The <literal>501</literal> response
notes that the client incorrectly
issued the <command>STARTTLS</command> command.
 <command>STARTTLS</command> is issued
with no parameters. The <literal>454</literal> response
necessitates that the client apply
rule set values to determine whether
to accept or maintain the connection.</para><para>Note that to maintain the Internet's
SMTP infrastructure, publicly used
servers must not require a TLS negotiation.
However, a server that is used privately
might require the client to perform
a TLS negotiation. In such instances,
the server returns this response:</para><screen>530 Must issue a STARTTLS command first</screen><para>The <literal>530</literal> response
instructs the client to issue the <command>STARTTLS</command> command to establish
a connection.</para><para>The server or client can refuse
a connection if the level of authentication
and privacy is not satisfactory. Alternately,
because most SMTP connections are
not secure, the server and client
might maintain an unsecure connection.
Whether to maintain or refuse a connection
is determined by the configuration
of the server and the client.</para><para>Support for running SMTP with
TLS is not enabled by default. TLS
is enabled when the SMTP client issues
the <command>STARTTLS</command> command.
Before the SMTP client can issue this
command, you must set up the certificates
that enable <command>sendmail</command> to
use TLS. See <olink targetptr="fxcty" remap="internal">How
to Set SMTP to Use TLS</olink>. Note
that this procedure includes defining
new configuration file options and
rebuilding your <filename>sendmail.cf</filename> file.</para><sect3 id="fvbqb"><title>Configuration
File Options for Running SMTP With
TLS</title><itemizedlist><para>The following table describes
the configuration file options that
are used to run SMTP with TLS. If
you declare any of these options,
use one of the following syntaxes:</para><listitem><para><literal>O</literal> <replaceable>OptionName</replaceable>=<replaceable>argument</replaceable>          <literal>#
for the configuration file</literal></para>
</listitem><listitem><para><literal>-O</literal> <replaceable>OptionName</replaceable>=<replaceable>argument</replaceable>         <literal>#
for the command line</literal></para>
</listitem><listitem><para><literal>define(`</literal><replaceable>m4Name</replaceable>',<replaceable>argument</replaceable><literal>)</literal> 
   <literal># for m4 configuration</literal></para>
</listitem>
</itemizedlist><table frame="topbot" pgwide="100" id="fvzls"><title>Configuration File
Options for Running SMTP With TLS</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="31.52*"/><colspec colwidth="68.48*"/><thead><row rowsep="1"><entry><para>Option</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option role="nodash">CACertFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCACERT</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
one CA certificate.</para>
</entry>
</row><row><entry><para><option role="nodash">CACertPath</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCACERT_PATH</option></para><para>Argument: <replaceable>path</replaceable></para><para>Default value: undefined</para><para>Identifies the path to the directory
that contains certificates of CAs.</para>
</entry>
</row><row><entry><para><option role="nodash">ClientCertFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCLIENT_CERT</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
the certificate of the client. Note
that this certificate is used when <command>sendmail</command> acts as a client.</para>
</entry>
</row><row><entry><para><option role="nodash">ClientKeyFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCLIENT_KEY</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
the private key that belongs to the
client certificate.</para>
</entry>
</row><row><entry><para><option role="nodash">CRLFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCRL</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
the certificate revocation status,
which is used for X.509v3 authentication.</para>
</entry>
</row><row><entry><para><option role="nodash">DHParameters</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confDH_PARAMETERS</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
the Diffie-Hellman (DH) parameters.</para>
</entry>
</row><row><entry><para><option role="nodash">RandFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confRAND_FILE</option></para><para>Argument: <literal>file:</literal><replaceable>filename</replaceable> or <literal>egd:</literal><replaceable>UNIX socket</replaceable></para><para>Default value: undefined</para><para>Uses the <literal>file:</literal> prefix
to identify the file that contains
random data or uses the <literal>egd:</literal> prefix
to identify the UNIX socket. Note
that because the Solaris OS supports
the <literal>random</literal> number
generator device, this option does
not need to be specified. See the <olink targetdoc="refman7" targetptr="random-7d" remap="external"><citerefentry><refentrytitle>random</refentrytitle><manvolnum>7D</manvolnum></citerefentry></olink> man
page.</para>
</entry>
</row><row><entry><para><option role="nodash">ServerCertFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confSERVER_CERT</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: undefined</para><para>Identifies the file that contains
the server's certificate. This certificate
is used when <command>sendmail</command> acts
as a server.</para>
</entry>
</row><row><entry><para><option role="nodash">Timeout.starttls</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confTO_STARTTLS</option></para><para>Argument: <replaceable>amount
of time</replaceable></para><para>Default value: <literal>1h</literal></para><para>Sets the amount of time the
SMTP client waits for a response to
the <command>STARTTLS</command> command.</para>
</entry>
</row><row><entry><para><option role="nodash">TLSSrvOptions</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confTLS_SRV_OPTIONS</option></para><para>Argument: <literal>V</literal></para><para>Default value: undefined</para><para>Determines whether the server
asks for a certificate from the client.
If this option is set to <literal>V</literal>,
no client verification is performed.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><itemizedlist><para>For <command>sendmail</command> to
support SMTP's use of TLS, the following
options must be defined:</para><listitem><para><option role="nodash">CACertPath</option></para>
</listitem><listitem><para><option role="nodash">CACertFile</option></para>
</listitem><listitem><para><option role="nodash">ServerCertFile</option></para>
</listitem><listitem><para><option role="nodash">ClientKeyFile</option></para>
</listitem>
</itemizedlist><para>Other options are not required.</para>
</sect3><sect3 id="fvbqm"><title>Macros for
Running SMTP With TLS</title><para>The following table describes
the macros that are used by the <command>STARTTLS</command> command.</para><table frame="topbot" pgwide="100" id="fwaun"><title>Macros for Running
SMTP With TLS</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="31.33*"/><colspec colwidth="68.67*"/><thead><row rowsep="1"><entry><para>Macro</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>${cert_issuer}</literal></para>
</entry><entry><para>Holds the distinguished name
(DN) of the certification authority
(CA), which is the certificate issuer.</para>
</entry>
</row><row><entry><para><literal>${cert_subject}</literal></para>
</entry><entry><para>Holds the DN of the certificate
that is called the <emphasis role="strong">cert subject</emphasis>.</para>
</entry>
</row><row><entry><para><literal>${cn_issuer}</literal></para>
</entry><entry><para>Holds the common name (CN) of
the CA, which is the <emphasis role="strong">cert issuer</emphasis>.</para>
</entry>
</row><row><entry><para><literal>${cn_subject}</literal></para>
</entry><entry><para>Holds the CN of the certificate
that is called the <emphasis role="strong">cert subject</emphasis>.</para>
</entry>
</row><row><entry><para><literal>${tls_version}</literal></para>
</entry><entry><para>Holds the version of TLS that
is used for the connection.</para>
</entry>
</row><row><entry><para><literal>${cipher}</literal></para>
</entry><entry><para>Holds a set of cryptographic
algorithms (known as a <emphasis role="strong">cipher suite</emphasis>)
that is used for the connection.</para>
</entry>
</row><row><entry><para><literal>${cipher_bits}</literal></para>
</entry><entry><para>Holds in bits the key length
of the symmetric encryption algorithm
that is used for the connection.</para>
</entry>
</row><row><entry><para><literal>${verify}</literal></para>
</entry><entry><para>Holds the result of the verification
of the certificate that was presented.
Possible values are as follows:</para><itemizedlist><listitem><para><literal>OK</literal> &ndash;
The verification succeeded.</para>
</listitem><listitem><para><literal>NO</literal> &ndash;
No certificate was presented.</para>
</listitem><listitem><para><literal>NOT</literal> &ndash;
No certificate was requested.</para>
</listitem><listitem><para><literal>FAIL</literal> &ndash;
The certificate that was presented
could not be verified.</para>
</listitem><listitem><para><literal>NONE</literal> &ndash; <command>STARTTLS</command> has not been performed.</para>
</listitem><listitem><para><literal>TEMP</literal> &ndash;
Temporary error occurred.</para>
</listitem><listitem><para><literal>PROTOCOL</literal> &ndash;
SMTP error occurred.</para>
</listitem><listitem><para><literal>SOFTWARE</literal> &ndash; <command>STARTTLS</command> handshake failed.</para>
</listitem>
</itemizedlist>
</entry>
</row><row><entry><para><literal>${server_name}</literal></para>
</entry><entry><para>Holds the name of the server
with the current outgoing SMTP connection.</para>
</entry>
</row><row><entry><para><literal>${server_addr}</literal></para>
</entry><entry><para>Holds the address of the server
with the current outgoing SMTP connection.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3><sect3 id="fvbrj"><title>Rule Sets
for Running SMTP With TLS</title><para>The following table describes
rule sets that determine whether an
SMTP connection that uses TLS should
be accepted, continued, or refused.</para><table frame="topbot" pgwide="100" id="fwadt"><title>Rule Sets for Running
SMTP With TLS</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="31.80*"/><colspec colwidth="68.20*"/><thead><row rowsep="1"><entry><para>Rule Set</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>tls_server</literal></para>
</entry><entry><para>Acting as a client, <command>sendmail</command> uses this rule set to determine
whether the server is currently supported
by TLS.</para>
</entry>
</row><row><entry><para><literal>tls_client</literal></para>
</entry><entry><para>Acting as a server, <command>sendmail</command> uses this rule set to determine
whether the client is currently supported
by TLS.</para>
</entry>
</row><row><entry><para><literal>tls_rcpt</literal></para>
</entry><entry><para>This rule set requires verification
of the recipient's MTA. This recipient
restriction makes attacks such as
DNS spoofing impossible.</para>
</entry>
</row><row><entry><para><literal>TLS_connection</literal></para>
</entry><entry><para>This rule set checks the requirement
that is specified by the RHS of the
access map against the actual parameters
of the current TLS connection.</para>
</entry>
</row><row><entry><para><literal>try_tls</literal></para>
</entry><entry><para><command>sendmail</command> uses
this rule set to determine the feasibility
of using <command>STARTTLS</command> when
connecting to another MTA. If the
MTA cannot properly implement <command>STARTTLS</command>, then <command>STARTTLS</command> is
not used.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><itemizedlist><para>For more information, see the
following:</para><listitem><para><citetitle>Sendmail
Installation and Operation Guide</citetitle> &ndash; <ulink url="http://people.freenet.de/slgig/op_en/rules.html" type="url">http://people.freenet.de/slgig/op_en/rules.html</ulink></para>
</listitem><listitem><para><filename>cf/README</filename> for <command>sendmail</command> &ndash; <ulink url="http://people.freenet.de/slgig/op_en/rules.html" type="url">http://www.sendmail.org/m4/starttls.html</ulink></para>
</listitem>
</itemizedlist>
</sect3><sect3 id="fvbqd"><title>Security
Considerations Related to Running
SMTP With TLS</title><para>As a standard mail protocol
that defines mailers that run over
the Internet, SMTP is not an end-to-end
mechanism. Because of this protocol
limitation, TLS security through SMTP
does not include mail user agents.
Mail user agents act as an interface
between users and a mail transfer
agent such as <command>sendmail</command>.</para><para>Also, mail might be routed through
multiple servers. For complete SMTP
security the entire chain of SMTP
connections must have TLS support.</para><para>Finally, the level of negotiated
authentication and privacy between
each pair of servers or a client and
server pair must be considered. For
more information, see <olink targetdoc="sysadv6" targetptr="secov-5" remap="external"><citetitle remap="section">Authentication Services</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.</para>
</sect3>
</sect2><sect2 id="evemy"><title>Additional
Command-Line Options in Version 8.13
of <command>sendmail</command></title><para>The following table describes
additional command-line options that
are available in version 8.13 of <command>sendmail</command>. Other command-line
options are described in the <olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><table frame="topbot" pgwide="100" id="evenb"><title>Command-Line Options
Available in Version 8.13 of <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="23.19*"/><colspec colwidth="76.81*"/><thead><row rowsep="1"><entry><para>Option</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option>D</option> <replaceable>logfile</replaceable></para>
</entry><entry><para>Sends debugging output to the
indicated <replaceable>logfile</replaceable>,
instead of  including this information
with the standard output.</para>
</entry>
</row><row><entry><para><option>q</option><option role="nodash">[!]Q</option><replaceable>substr</replaceable></para>
</entry><entry><para>Specifies the processing of
quarantined jobs that have this <replaceable>substr</replaceable>,  which is a
substring of the quarantine <replaceable>reason</replaceable>. See the description
of the <option>Q</option><replaceable>reason</replaceable> option. If ! is added,
this option processes quarantined
 jobs that do not have this <replaceable>substr</replaceable>.</para>
</entry>
</row><row><entry><para><option>Q</option><replaceable>reason</replaceable></para>
</entry><entry><para>Quarantines a normal queue item
with this <replaceable>reason</replaceable>.
If no <replaceable>reason</replaceable> is
given, the quarantined queue item
is unquarantined. This option works
with the <option>q</option><option role="nodash">[!]Q</option><replaceable>substr</replaceable> option. The <replaceable>substr</replaceable> is a portion (or substring)
of the <replaceable>reason</replaceable>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="evenf"><title>Additional
and Revised Configuration File Options
in Version 8.13 of <command>sendmail</command></title><para>The following table describes
the added and revised configuration
file options. If you declare any of
these options, use one of the following
syntaxes.</para><screen>O <replaceable>OptionName</replaceable>=<replaceable>argument</replaceable>          # for the configuration file
-O <replaceable>OptionName</replaceable>=<replaceable>argument</replaceable>         # for the command line
define(`<replaceable>m4Name</replaceable>',<replaceable>argument</replaceable>)     # for m4 configuration</screen><table frame="topbot" pgwide="100" id="evenh"><title>Configuration File
Options Available in Version 8.13
of <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="29.88*"/><colspec colwidth="70.12*"/><thead><row rowsep="1"><entry><para>Option</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option role="nodash">ConnectionRateWindowSize</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confCONNECTION_RATE_WINDOW_SIZE</option></para><para>Argument: <replaceable>number</replaceable></para><para>Default value: <literal>60</literal></para><para>Sets the number of seconds for
incoming connections to be maintained.</para>
</entry>
</row><row><entry><para><option role="nodash">FallBackSmartHost</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confFALLBACK_SMARTHOST</option></para><para>Argument: <replaceable>hostname</replaceable></para><para>To ensure that mail gets delivered
to the clients, this option provides
a well-connected host that serves
as a backup (or failover) for MX records
that fail.</para>
</entry>
</row><row><entry><para><option role="nodash">InputMailFilters</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confINPUT_MAIL_FILTERS</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Lists the input mail filters
for the <command>sendmail</command> daemon.</para>
</entry>
</row><row><entry><para><option role="nodash">PidFile</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confPID_FILE</option></para><para>Argument: <replaceable>filename</replaceable></para><para>Default value: <filename>/var/run/sendmail.pid</filename></para><para>As in previous releases, the
file name is macro-expanded before
it is opened. 	Additionally, in
version 8.13, the file is unlinked
when <command>sendmail</command> exits.</para>
</entry>
</row><row><entry><para><option role="nodash">QueueSortOrder</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confQUEUE_SORT_ORDER</option></para><para>Added argument: <literal>none</literal></para><para>In version 8.13 <literal>none</literal> is
used to specify no sorting order.</para>
</entry>
</row><row><entry><para><option role="nodash">RejectLogInterval</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confREJECT_LOG_INTERVAL</option></para><para>Argument: <replaceable>period-of-time</replaceable></para><para>Default value: <literal>3h</literal>,
which represents three hours.</para><para>When a daemon connection is
refused for the <replaceable>period-of-time</replaceable> specified, the information
is logged.</para>
</entry>
</row><row><entry><para><option role="nodash">SuperSafe</option></para>
</entry><entry><para><command>m4</command> name: <option role="nodash">confSAFE_QUEUE</option></para><para>Short name: <option role="nodash">s</option></para><para>Added argument: <literal>postmilter</literal></para><para>Default value: <literal>true</literal></para><para>If <literal>postmilter</literal> is
set, <command>sendmail</command> defers
synchronizing the queue file until
all <literal>milters</literal> have
signaled acceptance of the message.
For this argument to be useful, <command>sendmail</command> must be running
as an SMTP server. Otherwise, <literal>postmilter</literal> operates as if you are
using the <literal>true</literal> argument.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="evenm"><title>Additional
and Revised <function>FEATURE</function> Declarations
in Version 8.13 of <command>sendmail</command></title><para>The following table describes
the added and revised <function>FEATURE</function> declarations.
This <command>m4</command> macro uses
the following syntax.</para><screen>FEATURE(`<replaceable>name</replaceable>', `<replaceable>argument</replaceable>')</screen><table frame="topbot" pgwide="100" id="evenn"><title><function>FEATURE</function> Declarations
Available in Version 8.13 of <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colwidth="21.49*"/><colspec colwidth="78.51*"/><thead><row rowsep="1"><entry><para>Name of <function>FEATURE</function></para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>conncontrol</literal></para>
</entry><entry><para>Works with the <literal>access_db</literal> rule
set to check the number of incoming
SMTP connections. For details, see <filename>/etc/mail/cf/README</filename>.</para>
</entry>
</row><row><entry><para><literal>greet_pause</literal></para>
</entry><entry><para>Adds the <literal>greet_pause</literal> rule
set, which enables open proxy and
SMTP  	slamming protection. For
details, see <filename>/etc/mail/cf/README</filename>.</para>
</entry>
</row><row><entry><para><literal>local_lmtp</literal></para>
</entry><entry><para>The default argument continues
to be <literal>mail.local</literal>,
which is the 	LMTP-capable mailer
in this Solaris release. However,
in version 8.13, if a different LMTP-capable
mailer is used, its path name can
be specified as a second parameter
and the arguments that are passed
to the second parameter can be specified
in the third parameter. For example:</para><screen>FEATURE(`local_lmtp', `/usr/local/bin/lmtp', `lmtp')</screen>
</entry>
</row><row><entry><para><literal>mtamark</literal></para>
</entry><entry><para>Provides experimental support
for &ldquo;Marking Mail Transfer Agents
in Reverse DNS with TXT RRs&rdquo;
(MTAMark). For details, see <filename>/etc/mail/cf/README</filename>.</para>
</entry>
</row><row><entry><para><literal>ratecontrol</literal></para>
</entry><entry><para>Works with the <literal>access_db</literal> rule
set to control connection rates for
	hosts. For details, see <filename>/etc/mail/cf/README</filename>.</para>
</entry>
</row><row><entry><para><literal>use_client_ptr</literal></para>
</entry><entry><para>If this <function>FEATURE</function> is
enabled, the rule set <literal>check_relay</literal> overrides its first argument
with this argument, <literal>$&amp;{client_ptr}</literal>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2>
</sect1><sect1 id="mailrefer-105"><title>Changes
From Version 8.12 of <command>sendmail</command></title><para>This section contains
information about the following topics.</para><itemizedlist><listitem><para><olink targetptr="mailrefer-125" remap="internal">Support
for TCP Wrappers From Version 8.12
of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-106" remap="internal">submit.cf
Configuration File From Version 8.12
of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-109" remap="internal">Additional
or Deprecated Command-Line Options
From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-110" remap="internal">Additional
Arguments for the PidFile and ProcessTitlePrefix
Options From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-111" remap="internal">Additional
Defined Macros From Version 8.12 of
sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-112" remap="internal">Additional
Macros From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-113" remap="internal">Additional
MAX Macros From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-114" remap="internal">Additional
and Revised m4 Configuration Macros
From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-115" remap="internal">Changes to the FEATURE() Declaration From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-116" remap="internal">Changes to the MAILER() Declaration From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-117" remap="internal">Additional
Delivery Agent Flags From Version
8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-118" remap="internal">Additional
Equates for Delivery Agents From Version
8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-119" remap="internal">Additional
Queue Features From Version 8.12 of
sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-120" remap="internal">Changes
for LDAP From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-121" remap="internal">Change to
the Built-In Mailer From Version 8.12
of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-122" remap="internal">Additional
Rule Sets From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-123" remap="internal">Changes
to Files From Version 8.12 of sendmail</olink></para>
</listitem><listitem><para><olink targetptr="mailrefer-124" remap="internal">sendmail
Version 8.12 and IPv6 Addresses in
Configuration</olink></para>
</listitem>
</itemizedlist><sect2 id="mailrefer-125"><title>Support
for TCP Wrappers From Version 8.12
of <command>sendmail</command></title><para>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 <command>rlogind</command>, <command>telnetd</command>,
and <command>ftpd</command>. </para><para>Starting with version 8.12, <command>sendmail</command> enables the use
of TCP wrappers. This check does not
bypass other security measures. By
enabling TCP wrappers  in <command>sendmail</command>, a check has been added
to validate the source of a network
request before the request is granted.
See the <command>hosts_access</command>(4)
man page.</para><note><para>Support for TCP wrappers
in <command>inetd</command>(1M) and <command>sshd</command>(1M) started with the
Solaris 9 release.</para>
</note><para>For information about ACLs,
see <olink targetdoc="sysadv6" targetptr="secfile-37" remap="external"><citetitle remap="section">Using Access Control Lists to Protect Files</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.</para>
</sect2><sect2 id="mailrefer-106"><title><filename>submit.cf</filename> Configuration
File From Version 8.12 of <command>sendmail</command></title><para>Starting with version
8.12, <command>sendmail</command> includes
an additional configuration file, <filename>/etc/mail/submit.cf</filename>. This
file, <filename>submit.cf</filename>,
is used to run <command>sendmail</command> in
mail-submission program mode instead
of daemon mode. Mail-submission program
mode, unlike daemon mode, does not
require <filename>root</filename> privilege,
so this new paradigm provides better
security.</para><itemizedlist><para>See the following list of functions
for <filename>submit.cf</filename>:</para><listitem><para><command>sendmail</command> uses <filename>submit.cf</filename> to run in mail-submission
program (MSP) mode, which submits
email messages and can be started
by programs (such as <command>mailx</command>),
as well as by users. Refer to the
descriptions of the <option>Ac</option> option
and the <option>Am</option> option
in the <olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para>
</listitem><listitem><para><filename>submit.cf</filename> is
used in the following operating modes:</para><itemizedlist mark="bullet"><listitem><para><option>bm</option>,
which is the default operating mode</para>
</listitem><listitem><para><option>bs</option>,
which uses standard input to run SMTP</para>
</listitem><listitem><para><option>bt</option>,
which is the test mode that is used
to resolve addresses</para>
</listitem>
</itemizedlist>
</listitem><listitem><para><command>sendmail</command>,
when using <filename>submit.cf</filename>,
does not run as an SMTP daemon.</para>
</listitem><listitem><para><command>sendmail</command>,
when using <filename>submit.cf</filename>,
uses <filename>/var/spool/clientmqueue</filename>,
 the client-only mail queue, which
holds messages that were not delivered
to the <command>sendmail</command> daemon.
 Messages in the client-only queue
are delivered by the client &ldquo;daemon,&rdquo;
which is really acting as a client
queue runner.</para>
</listitem><listitem><para>By default, <command>sendmail</command> uses <filename>submit.cf</filename> periodically
to run the MSP queue (otherwise known
as the client-only queue), <filename>/var/spool/clientmqueue</filename>.</para><screen>/usr/lib/sendmail -Ac -q15m</screen>
</listitem>
</itemizedlist><itemizedlist><para>Note the following:</para><listitem><para>Starting with the
Solaris 9 release, <filename>submit.cf</filename> is
provided automatically.</para>
</listitem><listitem><para><filename>submit.cf</filename> does
not require any planning or preliminary
procedures prior to the installation
of the Solaris 9 release or a more
recent release.</para>
</listitem><listitem><para>Unless you specify
a configuration file, <command>sendmail</command> automatically
uses <filename>submit.cf</filename> as
required. Basically, <command>sendmail</command> knows
which tasks are appropriate for <filename>submit.cf</filename> and which tasks
are appropriate for <filename>sendmail.cf</filename>.</para>
</listitem><listitem><para><filename>submit.cf</filename> is
not to be modified.</para>
</listitem>
</itemizedlist><sect3 id="mailrefer-107"><title>Functions
That Distinguish <filename>sendmail.cf</filename> From <filename>submit.cf</filename></title><para>The <filename>sendmail.cf</filename> configuration
file is for the daemon mode. When
using this file, <command>sendmail</command> is
acting as a mail transfer agent (MTA),
which is started by <filename>root</filename>.</para><screen>/usr/lib/sendmail -L sm-mta -bd -q1h</screen><itemizedlist><para>See the following list of other
distinguishing functions for <filename>sendmail.cf</filename>:</para><listitem><para>By default, <filename>sendmail.cf</filename> accepts SMTP connections
on ports 25 and 587.</para>
</listitem><listitem><para>By default, <filename>sendmail.cf</filename> runs the main queue, <filename>/var/spool/mqueue</filename>.</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="mailrefer-108"><title>Functional
Changes From Version 8.12 of <command>sendmail</command></title><itemizedlist><para>With the addition of <filename>submit.cf</filename>, the following functional
changes have occurred:</para><listitem><para>Starting with version
8.12 of <command>sendmail</command>,
only <filename>root</filename> can
run the mail queue. For further details,
refer to the changes that are described
in the <olink targetdoc="refman1" targetptr="mailq-1" remap="external"><citerefentry><refentrytitle>mailq</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man
page. For new task information, refer
to <olink targetptr="mailadmin-262" remap="internal">Administering
the Queue Directories (Task Map)</olink>. </para>
</listitem><listitem><para>The mail-submission
program mode runs without <filename>root</filename> privilege,
which might prevent <command>sendmail</command> from
having access to certain files (such
as the <filename>.forward</filename> files).
Therefore, the <option>bv</option> option
for <command>sendmail</command> could
give the user misleading output. No
workaround is available.</para>
</listitem><listitem><para>Prior to <command>sendmail</command> version 8.12, if you were
not running <command>sendmail</command> in
daemon mode, you would only prevent
the delivery of inbound mail. Starting
with <command>sendmail</command> version
8.12, if you are not running the <command>sendmail</command> 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 <olink targetptr="mailadmin-377" remap="internal">Managing
Mail Delivery by Using an Alternate
Configuration</olink> for a way to
resolve this problem.</para>
</listitem>
</itemizedlist>
</sect3>
</sect2><sect2 id="mailrefer-109"><title>Additional
or Deprecated Command-Line Options
From Version 8.12 of <command>sendmail</command></title><para>The following table describes
additional or deprecated command-line
options for <command>sendmail</command>.
Other command-line options are described
in the <olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><table frame="topbot" pgwide="100" id="mailrefer-tbl-200"><title>Additional
or Deprecated Command-Line Options
From Version 8.12 of <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="17.68*"/><colspec colname="colspec1" colwidth="82.32*"/><thead><row rowsep="1"><entry><para>Option</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option>Ac</option></para>
</entry><entry><para>Indicates that you want to use
the configuration file, <filename>submit.cf</filename>, even if the operation
mode does not indicate an initial
mail submission. For more information
about <filename>submit.cf</filename>,
refer to <olink targetptr="mailrefer-106" remap="internal">submit.cf Configuration File From
Version 8.12 of sendmail</olink>.</para>
</entry>
</row><row><entry><para><option>Am</option></para>
</entry><entry><para>Indicates that you want to use
the configuration file, <filename>sendmail.cf</filename>, even if the operation
mode indicates an initial mail submission.
For more information, refer to <olink targetptr="mailrefer-106" remap="internal">submit.cf
Configuration File From Version 8.12
of sendmail</olink>.</para>
</entry>
</row><row><entry><para><option>bP</option></para>
</entry><entry><para>Indicates that you are printing
the number of entries in each queue.</para>
</entry>
</row><row><entry><para><option>G</option></para>
</entry><entry><para>Indicates that the message that
is 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 is
noted in the Release Notes that are
part of the <command>sendmail</command> distribution
on <ulink url="ftp://ftp.sendmail.org" type="url">ftp://ftp.sendmail.org</ulink>,
improperly formed messages might be
rejected in future releases.</para>
</entry>
</row><row><entry><para><option>L</option> <replaceable>tag</replaceable></para>
</entry><entry><para>Sets the identifier that is
used for syslog messages to the supplied <replaceable>tag</replaceable>.</para>
</entry>
</row><row><entry><para><option>q[!]I</option> <replaceable>substring</replaceable></para>
</entry><entry><para>Processes only jobs that contain
this <replaceable>substring</replaceable> of
one of the recipients. When <literal>!</literal> is
added, the option processes only jobs
that do not have this <replaceable>substring</replaceable> of one of the recipients.</para>
</entry>
</row><row><entry><para><option>q[!]R</option> <replaceable>substring</replaceable></para>
</entry><entry><para>Processes only jobs that contain
this <replaceable>substring</replaceable> of
the queue ID. When <literal>!</literal> is
added, the option processes only jobs
that do not have this <replaceable>substring</replaceable> of the queue ID.</para>
</entry>
</row><row><entry><para><option>q[!]S</option> <replaceable>substring</replaceable></para>
</entry><entry><para>Processes only jobs that contain
this <replaceable>substring</replaceable> of
the sender. When <literal>!</literal> is
added, the option processes only jobs
that do not have this <replaceable>substring</replaceable> of the sender.</para>
</entry>
</row><row><entry><para><option>qf</option></para>
</entry><entry><para>Processes saved messages in
the queue once, without using the <command>fork</command> system call, and runs
the process in the foreground. Refer
to the <olink targetdoc="refman2" targetptr="fork-2" remap="external"><citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink> man
page.</para>
</entry>
</row><row><entry><para><option>qG</option><replaceable>name</replaceable></para>
</entry><entry><para>Processes only the messages
in the <replaceable>name</replaceable> queue
group.</para>
</entry>
</row><row><entry><para><option>qp</option><replaceable>time</replaceable></para>
</entry><entry><para>Processes saved messages in
the queue at a specific interval of
time with a single child that is forked
for each queue. The child sleeps between
queue runs. This new option is similar
to the <option>q</option><replaceable>time</replaceable>, which periodically
forks a child to process the queue.</para>
</entry>
</row><row><entry><para><option>U</option></para>
</entry><entry><para>As is noted in the Release Notes
that are part of the <command>sendmail</command> distribution
on <ulink url="ftp://ftp.sendmail.org" type="url">ftp://ftp.sendmail.org</ulink>,
this option is not available as of
version 8.12. Mail user agents should
use the <option>G</option> argument.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-110"><title>Additional
Arguments for the <option role="nodash">PidFile</option> and <option role="nodash">ProcessTitlePrefix</option> Options From Version 8.12
of <command>sendmail</command></title><para>The following table describes
additional macro-processed arguments
for the <option role="nodash">PidFile</option> and <option role="nodash">ProcessTitlePrefix</option> options.
For more information about these options,
see the <olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><table frame="topbot" id="mailrefer-tbl-201"><title>Arguments
for the <literal>PidFile</literal> and <literal>ProcessTitlePrefix</literal> Options</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="28.24*"/><colspec colname="colspec1" colwidth="71.76*"/><thead><row rowsep="1"><entry><para>Macro</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>${daemon_addr}</literal></para>
</entry><entry><para>Provides daemon address (for
example, 0.0.0.0)</para>
</entry>
</row><row><entry><para><literal>${daemon_family}</literal></para>
</entry><entry><para>Provides daemon family (for
example, <literal>inet</literal>,
and <literal>inet6</literal>)</para>
</entry>
</row><row><entry><para><literal>${daemon_info}</literal></para>
</entry><entry><para>Provides daemon information
(for example,                 SMTP+queueing@00:30:00)</para>
</entry>
</row><row><entry><para><literal>${daemon_name}</literal></para>
</entry><entry><para>Provides daemon name (for example,
MSA)</para>
</entry>
</row><row><entry><para><literal>${daemon_port}</literal></para>
</entry><entry><para>Provides daemon port (for example,
25)</para>
</entry>
</row><row><entry><para><literal>${queue_interval}</literal></para>
</entry><entry><para>Provides queue run interval
(for example, 00:30:00)</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-111"><title>Additional
Defined Macros From Version 8.12 of <command>sendmail</command></title><para>The following table describes
additional macros that are reserved
for use by the <command>sendmail</command> program.
The macros' values are assigned internally.
For more information, refer to the <olink targetdoc="refman1m" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page.</para><table frame="topbot" id="mailrefer-tbl-202"><title>Additional
Defined Macros for <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="50*"/><colspec colname="colspec1" colwidth="50*"/><thead><row rowsep="1"><entry><para>Macro</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>${addr_type}</literal></para>
</entry><entry><para>Identifies the current address
as an envelope sender or a recipient
address.</para>
</entry>
</row><row><entry><para><literal>${client_resolve}</literal></para>
</entry><entry><para>Holds the result of the resolve
call for <literal>${client_name}</literal>: <literal>OK</literal>, <literal>FAIL</literal>, <literal>FORGED</literal>, or <literal>TEMP</literal>.</para>
</entry>
</row><row><entry><para><literal>${deliveryMode}</literal></para>
</entry><entry><para>Specifies the current delivery
mode <command>sendmail</command> is
using instead of the value of the <option role="nodash">DeliveryMode</option> option.</para>
</entry>
</row><row><entry><para><literal>${dsn_notify}</literal>, <literal>${dsn_envid}</literal>, <literal>${dsn_ret}</literal></para>
</entry><entry><para>Holds the corresponding DSN
parameter values.</para>
</entry>
</row><row><entry><para><literal>${if_addr}</literal></para>
</entry><entry><para>Provides the interface's address
for the incoming connection if the
interface does not belong to the loopback
net. This macro is especially useful
for virtual hosting.</para>
</entry>
</row><row><entry><para><literal>${if_addr_out}</literal>, <literal>${if_name_out}</literal>, <literal>${if_family_out}</literal></para>
</entry><entry><para>Avoids the reuse of <literal>${if_addr}</literal>. Holds the following values
respectively.</para><para>The address of the interface
for the outgoing connection</para><para>The host name of the interface
for the outgoing connection</para><para>The family of the interface
for the outgoing connection</para>
</entry>
</row><row><entry><para><literal>${if_name}</literal></para>
</entry><entry><para>Provides the interface's host
name for the incoming connection and
is especially useful for virtual hosting. </para>
</entry>
</row><row><entry><para><literal>${load_avg}</literal></para>
</entry><entry><para>Checks and reports the current
average number of jobs in the run
queue.</para>
</entry>
</row><row><entry><para><literal>${msg_size}</literal></para>
</entry><entry><para>Holds the value of the message
size (<literal>SIZE=parameter</literal>)
in an ESMTP dialogue before the message
has been collected. Thereafter, the
macro holds the message size as computed
by <command>sendmail</command> and
is used in <literal>check_compat</literal>.
For information about <literal>check_compat</literal>, refer to <olink targetptr="mailrefer-tbl-206" remap="internal">Table
14&ndash;25</olink>.</para>
</entry>
</row><row><entry><para><literal>${nrcpts}</literal></para>
</entry><entry><para>Holds the number of validated
recipients.</para>
</entry>
</row><row><entry><para><literal>${ntries}</literal></para>
</entry><entry><para>Holds the number of delivery
attempts.</para>
</entry>
</row><row><entry><para><literal>${rcpt_mailer}</literal>, <literal>${rcpt_host}</literal>, <literal>${rcpt_addr}</literal>, <literal>${mail_mailer}</literal>, <literal>${mail_host}</literal>, <literal>${mail_addr}</literal></para>
</entry><entry><para>Holds the results of parsing
the <literal>RCPT</literal> and <literal>MAIL</literal> arguments, which is
the resolved right-hand side (RHS)
triplet from the mail delivery agent
(<literal>$#</literal><replaceable>mailer</replaceable><literal></literal>),
the host (<literal>$@</literal><replaceable>host</replaceable><literal></literal>),
and the user (<literal>$:</literal><replaceable>addr</replaceable><literal></literal>).</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-112"><title>Additional
Macros From Version 8.12 of <command>sendmail</command></title><para>In this section, you can find
a table that describes the additional
macros that are used to build the <command>sendmail</command> configuration file.</para><table frame="topbot" id="mailrefer-tbl-203"><title>Additional
Macros Used to Build the <command>sendmail</command> Configuration File</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="50*"/><colspec colname="colspec1" colwidth="50*"/><thead><row rowsep="1"><entry><para>Macro</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>LOCAL_MAILER_EOL</literal></para>
</entry><entry><para>Overrides the default end-of-line
string for the local mailer.</para>
</entry>
</row><row><entry><para><literal>LOCAL_MAILER_FLAGS</literal></para>
</entry><entry><para>Adds <literal>Return-Path:</literal> header
by default.</para>
</entry>
</row><row><entry><para><literal>MAIL_SETTINGS_DIR</literal></para>
</entry><entry><para>Contains the path (including
the trailing slash) for the mail settings
directory.</para>
</entry>
</row><row><entry><para><literal>MODIFY_MAILER_FLAGS</literal></para>
</entry><entry><para>Improves the <literal>*_MAILER_FLAGS</literal>. This macro sets, adds,
or deletes flags.</para>
</entry>
</row><row><entry><para><literal>RELAY_MAILER_FLAGS</literal></para>
</entry><entry><para>Defines additional flags for
the relay mailer.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-113"><title>Additional <literal>MAX</literal> Macros From Version
8.12 of <command>sendmail</command></title><para>Use the following macros
to configure the maximum number of
commands that can be received before <command>sendmail</command> slows its delivery.
You can set these <literal>MAX</literal> macros
at compile time. The maximum values
in the following table also represent
the current default values.</para><table frame="topbot" id="mailrefer-tbl-204"><title>Additional <literal>MAX</literal> Macros</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row rowsep="1"><entry><para>Macro</para>
</entry><entry><para>Maximum Value</para>
</entry><entry><para>Commands Checked by Each Macro</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>MAXBADCOMMANDS</literal></para>
</entry><entry><para>25</para>
</entry><entry><para>Unknown commands</para>
</entry>
</row><row><entry><para><literal>MAXNOOPCOMMANDS</literal></para>
</entry><entry><para>20</para>
</entry><entry><para><command>NOOP</command>, <command>VERB</command>, <command>ONEX</command>, <command>XUSR</command></para>
</entry>
</row><row><entry><para><literal>MAXHELOCOMMANDS</literal></para>
</entry><entry><para>3</para>
</entry><entry><para><command>HELO</command>, <command>EHLO</command></para>
</entry>
</row><row><entry><para><literal>MAXVRFYCOMMANDS</literal></para>
</entry><entry><para>6</para>
</entry><entry><para><command>VRFY</command>, <command>EXPN</command></para>
</entry>
</row><row><entry><para><literal>MAXETRNCOMMANDS</literal></para>
</entry><entry><para>8</para>
</entry><entry><para><command>ETRN</command></para>
</entry>
</row>
</tbody>
</tgroup>
</table><note><para>You can disable a macro's
check by setting the macro's value
to zero.</para>
</note>
</sect2><sect2 id="mailrefer-114"><title>Additional
and Revised <literal>m4</literal> Configuration
Macros From Version 8.12 of <command>sendmail</command></title><para>This section contains
a table of additional and revised <literal>m4</literal> configuration macros
for <command>sendmail</command>. Use
the following syntax to declare these
macros.</para><screen><replaceable>symbolic-name</replaceable>(`<replaceable>value</replaceable>')</screen><para>If you need to build a new <filename>sendmail.cf</filename> file, refer
to <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><table frame="topbot" id="mailrefer-tbl-205"><title>Additional
and Revised <literal>m4</literal> Configuration
Macros for <command>sendmail</command></title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="37.05*"/><colspec colname="colspec1" colwidth="62.95*"/><thead><row rowsep="1"><entry><para><literal>m4</literal> Macro</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><function>FEATURE</function></para>
</entry><entry><para>For details, refer to <olink targetptr="mailrefer-115" remap="internal">Changes to the FEATURE() Declaration From Version 8.12 of sendmail</olink>.</para>
</entry>
</row><row><entry><para><function>LOCAL_DOMAIN</function></para>
</entry><entry><para>This macro adds entries to class <literal>w</literal> (<literal>$=w</literal>).</para>
</entry>
</row><row><entry><para><function>MASQUERADE_EXCEPTION</function></para>
</entry><entry><para>A new macro that defines hosts
or subdomains that cannot be masqueraded.</para>
</entry>
</row><row><entry><para><function>SMART_HOST</function></para>
</entry><entry><para>This macro can now be used for
bracketed addresses, such as <literal>user@[</literal><replaceable>host</replaceable><literal>]</literal>.</para>
</entry>
</row><row><entry><para><function>VIRTUSER_DOMAIN</function> or <function>VIRTUSER_DOMAIN_FILE</function></para>
</entry><entry><para>When these macros are used,
include <literal>$={VirtHost}</literal> in <literal>$=R</literal>. As a reminder, <literal>$=R</literal> is the set of host names
that are allowed to relay.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-115"><title>Changes
to the <function>FEATURE</function> Declaration
From Version 8.12 of <command>sendmail</command></title><para>Refer to the following
tables for information about the specific
changes to the <function>FEATURE</function> declarations.</para><para>To use the new and revised <literal>FEATURE</literal> names, use the following
syntax.</para><screen>FEATURE(`<replaceable>name</replaceable>', `<replaceable>argument</replaceable>')</screen><para>If you need to build a
new <filename>sendmail.cf</filename> file,
refer to <olink targetptr="mailadmin-43" remap="internal">Building the sendmail.cf Configuration
File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><table frame="topbot" pgwide="100" id="mailrefer-tbl-206"><title>Additional
and Revised <function>FEATURE</function> Declarations</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="36.22*"/><colspec colname="colspec1" colwidth="63.78*"/><thead><row rowsep="1"><entry><para>Name of <function>FEATURE</function></para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>compat_check</literal></para>
</entry><entry><para>Argument: Refer to the example
in the following paragraph.</para><para>This new <function>FEATURE</function> enables
you to look for a key in the access
map that consists of the sender address
and the recipient address. This <function>FEATURE</function> is delimited by
the following string, <literal>&lt;@></literal>. <replaceable>sender</replaceable><literal>@</literal><replaceable>sdomain</replaceable><literal>&lt;@></literal><replaceable>recipient</replaceable><literal>@</literal><replaceable>rdomain</replaceable> is an example.</para>
</entry>
</row><row><entry><para><literal>delay_checks</literal></para>
</entry><entry><para>Argument: <literal>friend</literal>,
which enables a spam-friend test,
or <literal>hater</literal>, which
enables a spam-hater test.</para><para>A new <function>FEATURE</function> that
delays all checks. By using <literal>FEATURE(`delay_checks')</literal>, the rule sets <literal>check_mail</literal> and <literal>check_relay</literal> are
not called when a client connects
or issues a <command>MAIL</command> command
respectively.  Instead, these rule
sets are called by the <literal>check_rcpt</literal> rule set. For details,
refer to the <filename>/etc/mail/cf/README</filename> file.</para>
</entry>
</row><row><entry><para><literal>dnsbl</literal></para>
</entry><entry><para>Argument: This <function>FEATURE</function>accepts
a maximum of two arguments:</para><itemizedlist mark="bullet"><listitem><para>DNS server name</para>
</listitem><listitem><para>Rejection message</para>
</listitem>
</itemizedlist><para>A new <function>FEATURE</function> that
you can include multiple times to
check the return values for DNS lookups.
Note that this <function>FEATURE</function> enables
you to specify the behavior of temporary
lookup failures.</para>
</entry>
</row><row><entry><para><literal>enhdnsbl</literal></para>
</entry><entry><para>Argument: domain name.</para><para>A new <function>FEATURE</function> that
is an enhanced version of <literal>dnsbl</literal>,
which enables you to check the return
values for DNS lookups. For more information,
refer to <filename>/etc/mail/cf/README</filename>.</para>
</entry>
</row><row><entry><para><literal>generics_entire_domain</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
you can also use to apply <literal>genericstable</literal> to subdomains of <literal>$=G</literal>.</para>
</entry>
</row><row><entry><para><literal>ldap_routing</literal></para>
</entry><entry><para>Argument: For details, refer
to the &ldquo;Release Notes&rdquo;
in <ulink url="http://www.sendmail.org" type="url">http://www.sendmail.org</ulink>.</para><para>A new <function>FEATURE</function> that
implements LDAP address routing.  </para>
</entry>
</row><row><entry><para><literal>local_lmtp</literal></para>
</entry><entry><para>Argument: Path name of an LMTP-capable
mailer. The default is <filename>mail.local</filename>, which is LMTP capable
in this Solaris release.</para><para>A <function>FEATURE</function> that
now sets the delivery status notification
(DSN) diagnostic-code type for the
local mailer to the proper value of <literal>SMTP</literal>.</para>
</entry>
</row><row><entry><para><literal>local_no_masquerade</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
you can use to avoid masquerading
for the local mailer.</para>
</entry>
</row><row><entry><para><literal>lookupdotdomain</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
you can also use to look up the <replaceable>.domain</replaceable> in the access
map.</para>
</entry>
</row><row><entry><para><literal>nocanonify</literal></para>
</entry><entry><para>Argument: <literal>canonify_hosts</literal> or
nothing.</para><para>A <function>FEATURE</function> that
now includes the following features.</para><para>Enables a list of domains, as
specified by <literal>CANONIFY_DOMAIN</literal> or <literal>CANONIFY_DOMAIN_FILE</literal>, to
be passed to the <literal>$[</literal> and <literal>$]</literal> operators for canonification.</para><para>Enables addresses that have
only a host name, such as <literal>&lt;user@host></literal>, to be canonified, if <literal>canonify_hosts</literal> is specified
as its parameter.</para><para>Adds a trailing dot to addresses
with more than one component.</para>
</entry>
</row><row><entry><para><literal>no_default_msa</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
turns off <command>sendmail</command>'s
default setting from <literal>m4</literal>&ndash;generated
configuration files to &ldquo;listen&rdquo;
on several different ports, an implementation
of RFC 2476.</para>
</entry>
</row><row><entry><para><literal>nouucp</literal></para>
</entry><entry><para>Argument: <literal>reject</literal>,
which does not allow the <literal>!</literal> token,
or <literal>nospecial</literal>, which
does allow the <literal>!</literal> token.</para><para>A <function>FEATURE</function> that
determines whether to allow the <literal>!</literal> token in the local part
of an address.</para>
</entry>
</row><row><entry><para><literal>nullclient</literal></para>
</entry><entry><para>Argument: None.</para><para>A <function>FEATURE</function> that
now provides the full rule sets of
a normal configuration, allowing antispam
checks to be performed.</para>
</entry>
</row><row><entry><para><literal>preserve_local_plus_detail</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
enables you to preserve the <literal>+detail</literal> portion of the address
when <command>sendmail</command> passes
the address to the local delivery
agent.</para>
</entry>
</row><row><entry><para><literal>preserve_luser_host</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
enables you to preserve the name of
the recipient host, if <literal>LUSER_RELAY</literal> is used.</para>
</entry>
</row><row><entry><para><literal>queuegroup</literal></para>
</entry><entry><para>Argument: None.</para><para>A new <function>FEATURE</function> that
enables you to select a queue group
that is based on the full email address
or on the domain of the recipient.</para>
</entry>
</row><row><entry><para><literal>relay_mail_from</literal></para>
</entry><entry><para>Argument: The <replaceable>domain</replaceable> is
an optional argument.</para><para>A new <function>FEATURE</function> that
allows relaying if the mail sender
is listed as a <literal>RELAY</literal> in
the access map and is tagged with
the <literal>From:</literal> header
line. If the optional <replaceable>domain</replaceable> argument is given,
the domain portion of the mail sender
is also checked.</para>
</entry>
</row><row><entry><para><literal>virtuser_entire_domain</literal></para>
</entry><entry><para>Argument: None.</para><para>A <function>FEATURE</function> that
you can now use to apply <literal>$={VirtHost}</literal>, a new class for matching <literal>virtusertable</literal> entries that
can be populated by <literal>VIRTUSER_DOMAIN</literal> or <literal>VIRTUSER_DOMAIN_FILE</literal>. </para><para><literal>FEATURE(`virtuser_entire_domain')</literal> can also apply the class <literal>$={VirtHost}</literal> to entire subdomains.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following <function>FEATURE</function> declarations are no longer
supported.</para><table frame="topbot" pgwide="100" id="mailrefer-tbl-207"><title>Unsupported <function>FEATURE</function> Declarations</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="36.19*"/><colspec colname="colspec1" colwidth="63.81*"/><thead><row rowsep="1"><entry><para>Name of <function>FEATURE</function></para>
</entry><entry><para>Replacement</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>rbl</literal></para>
</entry><entry><para><literal>FEATURE(`dnsbl')</literal> and <literal>FEATURE(`enhdnsbl')</literal> replace
this <function>FEATURE</function>,
which has been removed.</para>
</entry>
</row><row><entry><para><literal>remote_mode</literal></para>
</entry><entry><para><literal>MASQUERADE_AS(`$S')</literal> replaces <literal>FEATURE(`remote_mode')</literal> in <filename>/etc/mail/cf/subsidiary.mc</filename>. <literal>$S</literal> is the <literal>SMART_HOST</literal> value
in <filename>sendmail.cf</filename>.</para>
</entry>
</row><row><entry><para><literal>sun_reverse_alias_files</literal></para>
</entry><entry><para><literal>FEATURE(`genericstable')</literal>.</para>
</entry>
</row><row><entry><para><literal>sun_reverse_alias_nis</literal></para>
</entry><entry><para><literal>FEATURE(`genericstable')</literal>.</para>
</entry>
</row><row><entry><para><literal>sun_reverse_alias_nisplus</literal></para>
</entry><entry><para><literal>FEATURE(`genericstable')</literal>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-116"><title>Changes
to the <function>MAILER</function> Declaration
From Version 8.12 of <command>sendmail</command></title><para>The <function>MAILER</function> declaration
specifies support for delivery agents.
To declare a delivery agent, use the
following syntax.</para><screen>MAILER(`<replaceable>symbolic-name</replaceable>')</screen><para>Note the following changes.</para><itemizedlist><listitem><para>In this new version
of <command>sendmail</command>, the <literal>MAILER(`smtp')</literal> declaration
now includes an additional mailer, <literal>dsmtp</literal>, which provides on-demand
delivery by using the <literal>F=%</literal> mailer
flag.  The <literal>dsmtp</literal> mailer
definition uses the new <option role="nodash">DSMTP_MAILER_ARGS</option>,
which defaults to <literal>IPC $h</literal>.</para>
</listitem><listitem><para>Numbers for rule sets
that are used by <literal>MAILER</literal>s
have been removed. 	You now have
no required order for listing your <literal>MAILER</literal>s except for <literal>MAILER(`uucp')</literal>, which must follow <literal>MAILER(`smtp')</literal> if <literal>uucp-dom</literal> and <literal>uucp-uudom</literal> are used.</para>
</listitem>
</itemizedlist><para>For more information about mailers,
refer to <olink targetptr="mailrefer-58" remap="internal">Mailers and sendmail</olink>. If you
need to build a new <filename>sendmail.cf</filename> file, refer to <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para>
</sect2><sect2 id="mailrefer-117"><title>Additional
Delivery Agent Flags From Version
8.12 of <command>sendmail</command></title><para>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 <literal>F=</literal> statement
of your configuration file, as shown
in the following example.</para><screen>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,</screen><table frame="topbot" id="mailrefer-tbl-208"><title>Additional
Mailer Flags</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec2" colwidth="10.15*"/><colspec colname="colspec3" colwidth="89.85*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>%</literal></para>
</entry><entry><para>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 <command>ETRN</command> request
or one of the following queue options: <option>qI</option>, <option>qR</option>,
or <option>qS</option>.</para>
</entry>
</row><row><entry><para><literal>1</literal></para>
</entry><entry><para>This flag disables the ability
of the mailer to send null characters
(for example, <literal>\0</literal>).</para>
</entry>
</row><row><entry><para><literal>2</literal></para>
</entry><entry><para>This flag disables the use of
ESMTP and requires that SMTP be used
instead.</para>
</entry>
</row><row><entry><para><literal>6</literal></para>
</entry><entry><para>This flag enables mailers to
strip headers to 7 bit.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-118"><title>Additional
Equates for Delivery Agents From Version
8.12 of <command>sendmail</command></title><para>The following table describes
additional equates that you can use
with the <command>M</command> 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.</para><screen>M<replaceable>agent-name</replaceable>, <replaceable>equate</replaceable>, <replaceable>equate</replaceable>, ...</screen><para>The following example includes
the new <literal>W=</literal> equate.
This equate specifies the maximum
time to wait for the mailer to return
after all data has been sent.</para><screen>Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, W=2m</screen><para>When you modify the definition
of a value for <literal>m4</literal> configuration,
use the syntax that is provided in
the following example.</para><screen>define(`SMTP_MAILER_MAXMSGS', `1000')</screen><para>The preceding example places
a limit of 1000 on the number of messages
that are delivered per connection
on an <literal>smtp</literal> mailer.</para><para>If you need to build a new <filename>sendmail.cf</filename> file, refer
to <olink targetptr="mailadmin-43" remap="internal">Building
the sendmail.cf Configuration File</olink> in <olink targetptr="mailadmin-1" remap="internal">Chapter&nbsp;13,
Mail Services (Tasks)</olink>.</para><note><para>Typically, you modify
the equate definitions in the <filename>mailer</filename> directory only when you
fine-tune.</para>
</note><table frame="topbot" id="mailrefer-tbl-209"><title>Additional
Equates for Delivery Agents</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="13.51*"/><colspec colname="colspec1" colwidth="86.49*"/><thead><row rowsep="1"><entry><para>Equate</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>/=</literal></para>
</entry><entry><para>Argument: Path to a directory</para><para>Specifies a directory to apply <literal>chroot()</literal> to before the mailer
program is executed</para>
</entry>
</row><row><entry><para><literal>m=</literal></para>
</entry><entry><para>Argument: Any of the following <literal>m4</literal> values that have previously
been defined with the <literal>define()</literal> routine</para><itemizedlist mark="none"><listitem><para><option role="nodash">SMTP_MAILER_MAXMSGS</option>, for the <literal>smtp</literal> mailer</para>
</listitem><listitem><para><option role="nodash">LOCAL_MAILER_MAXMSGS</option>, for the <literal>local</literal> mailer</para>
</listitem><listitem><para><option role="nodash">RELAY_MAILER_MAXMSGS</option>, for the <literal>relay</literal> mailer</para>
</listitem>
</itemizedlist><para>Limits the number of messages
that are delivered per connection
on an <literal>smtp</literal>, <literal>local</literal>, or <literal>relay</literal> mailer</para>
</entry>
</row><row><entry><para><literal>W=</literal></para>
</entry><entry><para>Argument: An increment of time</para><para>Specifies the maximum time to
wait for the return of the mailer
after all data has been sent</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-119"><title>Additional
Queue Features From Version 8.12 of <command>sendmail</command></title><para>The following list provides
details about additional queue features.</para><itemizedlist><listitem><para>This release supports
multiple queue directories. To use
multiple queues, supply a <option role="nodash">QueueDirectory</option> option
value in the configuration file that
ends with an asterisk (*), as is shown
in the following example.</para><screen>O QueueDirectory=/var/spool/mqueue/q*</screen><para>The option value, <filename>/var/spool/mqueue/q*</filename>, uses all of the directories
(or symbolic links to directories)
that begin with &ldquo;<literal>q</literal>&rdquo;
as queue directories.  Do not change
the queue directory structure while <command>sendmail</command> is running.  Queue
runs create a separate process for
running each queue unless the verbose
flag (<option>v</option>) is used
on a nondaemon queue run. The new
items are randomly assigned to a queue.</para>
</listitem><listitem><para>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.</para>
</listitem><listitem><para>Starting with version
8.12, only <filename>root</filename> can
run the mail queue. For further details,
refer to the changes that are described
in the <olink targetdoc="refman1" targetptr="mailq-1" remap="external"><citerefentry><refentrytitle>mailq</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man
page. For new task information, refer
to <olink targetptr="mailadmin-262" remap="internal">Administering
the Queue Directories (Task Map)</olink>.</para>
</listitem><listitem><para>To accommodate envelope
splitting, queue file names are now
15&ndash;characters long, rather than
14&ndash;characters long. File systems
with a 14&ndash;character name limit
are no longer supported.</para>
</listitem>
</itemizedlist><para>For task information, refer
to <olink targetptr="mailadmin-262" remap="internal">Administering
the Queue Directories (Task Map)</olink>.</para>
</sect2><sect2 id="mailrefer-120"><title>Changes
for LDAP From Version 8.12 of <command>sendmail</command></title><para>The following list describes
changes in the use of the Lightweight
Directory Access Protocol (LDAP) with <command>sendmail</command>.</para><itemizedlist><listitem><para><function>LDAPROUTE_EQUIVALENT</function> and <function>LDAPROUTE_EQUIVALENT_FILE</function> permit you to specify
equivalent host names, which are replaced
by the masquerade domain name for
LDAP routing lookups. For more information,
refer to <filename>/etc/mail/cf/README</filename>. </para>
</listitem><listitem><para>As noted in the Release
Notes that are part of the <command>sendmail</command> distribution at <ulink url="ftp://ftp.sendmail.org" type="url">ftp://ftp.sendmail.org</ulink>, the LDAPX map has been renamed
to LDAP. Use the following syntax
for LDAP.</para><screen>Kldap ldap <replaceable>options</replaceable></screen>
</listitem><listitem><para>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 <option>v</option> option,
as is shown.</para><screen>Kldap ldap -v"<replaceable>mail</replaceable>,<replaceable>more-mail</replaceable>"</screen>
</listitem><listitem><para>If no LDAP attributes
are specified in an LDAP map declaration,
all attributes that are found in the
match are returned.</para>
</listitem><listitem><para>This version of <command>sendmail</command> prevents commas
in quoted key and value strings in
the specifications of the LDAP alias
file from dividing a single entry
into multiple entries.</para>
</listitem><listitem><para>This version of <command>sendmail</command> has a new option
for LDAP maps. The option <option>V</option><replaceable>separator</replaceable> enables you
to specify a separator so that a lookup
can return both an attribute and a
value that are separated by the relevant <replaceable>separator</replaceable>.</para>
</listitem><listitem><para>In addition to using
the <literal>%s</literal> token to
parse an LDAP filter specification,
you can use the new token, <literal>%0</literal>,
to encode the key buffer. The <literal>%0</literal> token applies a literal
meaning to LDAP special characters.</para>
</listitem>
</itemizedlist><para>The following example shows
how these tokens differ for a &ldquo;<literal>*</literal>&rdquo; lookup.</para><table frame="topbot" id="mailrefer-tbl-210"><title>Comparison
of Tokens</title><tgroup cols="3" colsep="0" rowsep="0"><colspec colwidth="30.02*"/><colspec colwidth="30.02*"/><colspec colwidth="38.96*"/><thead><row rowsep="1"><entry><para>LDAP Map Specification</para>
</entry><entry><para>Specification Equivalent</para>
</entry><entry><para>Result</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>-k"uid=%s"</literal></para>
</entry><entry><para><literal>-k"uid=*"</literal></para>
</entry><entry><para>Matches any record with a user
attribute</para>
</entry>
</row><row><entry><para><literal>-k"uid=%0"</literal></para>
</entry><entry><para><literal>-k"uid=\2A"</literal></para>
</entry><entry><para>Matches a user with the name &ldquo;<literal>*</literal>&rdquo;</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following table describes
additional LDAP map flags.</para><table frame="topbot" id="mailrefer-tbl-211"><title>Additional
LDAP Map Flags</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="40.77*"/><colspec colname="colspec1" colwidth="59.23*"/><thead><row rowsep="1"><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option>1</option></para>
</entry><entry><para>Requires a single match to be
returned. If more than one match is
returned, the results are the equivalent
of no records being found.</para>
</entry>
</row><row><entry><para><option>r never|always|search|find</option></para>
</entry><entry><para>Sets the LDAP alias dereference
option.</para>
</entry>
</row><row><entry><para><option>Z size</option></para>
</entry><entry><para>Limits the number of matches
to return.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-121"><title>Change
to the Built-In Mailer From Version
8.12 of <command>sendmail</command></title><para>The old <literal>[TCP]</literal> built-in
mailer is not available.  Use the <literal>P=[IPC]</literal> built-in mailer
instead. The interprocess communications
(<literal>[IPC]</literal>) built-in
mailer now enables delivery to a UNIX
domain socket on systems that support
it. You can use this mailer with <literal>LMTP</literal> delivery agents that
listen on a named socket.  An example
mailer might resemble the following.</para><screen>Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, 
S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /var/run/lmtpd</screen><para>The first mailer argument in
the <literal>[IPC]</literal> mailer
is now checked for a legitimate value.
The following table provides possible
values for the first mailer argument. </para><table frame="topbot" id="mailrefer-tbl-212"><title>Possible
Values for the First Mailer Argument</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec6" colwidth="25.73*"/><colspec colname="colspec7" colwidth="74.27*"/><thead><row rowsep="1"><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>A=FILE</literal></para>
</entry><entry><para>Use for UNIX domain socket delivery</para>
</entry>
</row><row><entry><para><literal>A=TCP</literal></para>
</entry><entry><para>Use for TCP/IP connections</para>
</entry>
</row><row><entry><para><literal>A=IPC</literal></para>
</entry><entry><para>Is no longer available as a
first mailer argument</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="mailrefer-122"><title>Additional
Rule Sets From Version 8.12 of <command>sendmail</command></title><para>The following table lists
the additional rule sets and describes
what the rule sets  do.</para><table frame="topbot" id="mailrefer-tbl-213"><title>New
Rule Sets</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="26.82*"/><colspec colname="colspec1" colwidth="73.18*"/><thead><row rowsep="1"><entry><para>Set</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>check_eoh</literal></para>
</entry><entry><para>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. </para>
</entry>
</row><row><entry><para><literal>check_etrn</literal></para>
</entry><entry><para>Uses the <command>ETRN</command> command
(as <literal>check_rcpt</literal> uses <command>RCPT</command>).</para>
</entry>
</row><row><entry><para><literal>check_expn</literal></para>
</entry><entry><para>Uses the <command>EXPN</command> command
(as <literal>check_rcpt</literal> uses <command>RCPT</command>).</para>
</entry>
</row><row><entry><para><literal>check_vrfy</literal></para>
</entry><entry><para>Uses the <command>VRFY</command> command
(as <literal>check_rcpt</literal> uses <command>RCPT</command>).</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following list describes
additional rule set features.</para><itemizedlist><listitem><para>Numbered rule sets
are also named, but the rule sets
can still be accessed by their numbers.</para>
</listitem><listitem><para>The <command>H</command> 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.</para>
</listitem><listitem><para>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 <literal>token (1)</literal>,
but does not match the input <literal>token</literal>.</para><screen>R$+ (1)		$@ 1</screen>
</listitem><listitem><para><command>sendmail</command> accepts
the SMTP <command>RSET</command> command
even when it rejects commands because
of TCP wrappers or the <literal>check_relay</literal> rule set.</para>
</listitem><listitem><para>You receive a warning
if you set the <option role="nodash">OperatorChars</option> option multiple times. 
Also, do not set <option role="nodash">OperatorChars</option> after the rule sets are
defined.</para>
</listitem><listitem><para>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 <literal>S0</literal>.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="mailrefer-123"><title>Changes
to Files From Version 8.12 of <command>sendmail</command></title><para>Note the following changes.</para><itemizedlist><listitem><para>Starting in the Solaris
10 release, to support a read-only <filename>/usr</filename> file system, the contents
of the <filename>/usr/lib/mail</filename> directory
has been moved to the <filename>/etc/mail/cf</filename> directory. For details,
refer to <olink targetptr="mailrefer-126" remap="internal">Contents of the /etc/mail/cf Directory</olink>.
Note, however, that the shell scripts <filename>/usr/lib/mail/sh/check-hostname</filename> and <filename>/usr/lib/mail/sh/check-permissions</filename> are
now in the <filename>/usr/sbin</filename> directory.
See <olink targetptr="mailrefer-83" remap="internal">Other
Files Used for Mail Services</olink>.
For backward compatibility, symbolic
links point to each file's new location.</para>
</listitem><listitem><para>The new name for <filename>/usr/lib/mail/cf/main-v7sun.mc</filename> is <filename>/etc/mail/cf/cf/main.mc</filename>.</para>
</listitem><listitem><para>The new name for <filename>/usr/lib/mail/cf/subsidiary-v7sun.mc</filename> is <filename>/etc/mail/cf/cf/subsidiary.mc</filename>.</para>
</listitem><listitem><para>The <filename>helpfile</filename> is
now located in <filename>/etc/mail/helpfile</filename>. The old name (<filename>/etc/mail/sendmail.hf</filename>) has a symbolic link that
points to the new name.</para>
</listitem><listitem><para>The <filename>trusted-users</filename> file
is now located in <filename>/etc/mail/trusted-users</filename>. During an upgrade, if
the old name (<filename>/etc/mail/sendmail.ct</filename>) 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 <literal>root</literal>.</para>
</listitem><listitem><para>The <filename>local-host-names</filename> file is now located in <filename>/etc/mail/local-host-names</filename>.
During an upgrade, if the old name
(<filename>/etc/mail/sendmail.cw</filename>)
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.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="mailrefer-124"><title><command>sendmail</command> Version 8.12 and
IPv6 Addresses in Configuration</title><para>Starting with version
8.12 of <command>sendmail</command>,
IPv6 addresses that are used in configuration
should be prefixed with the <literal>IPv6:</literal> tag to identify the address
properly. If you are not identifying
an IPv6 address, a prefix tag is not
used.</para>
</sect2>
</sect1>
</chapter>