mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-01-24 23:32:12 +08:00
a4f3726934
Update to OpenSSL Libraries 1.0.2l. Fixes #9282. Remove Re-alpine and raplaced with Alpine-2.21. git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@18783 af4574ff-66df-0310-9fd7-8a98e5e911e0
441 lines
16 KiB
XML
441 lines
16 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../../general.ent">
|
|
%general-entities;
|
|
|
|
<!-- Downloads a web page
|
|
<!ENTITY sendmail-download-http "http://www.sendmail.org/ftp/sendmail.&sendmail-version;.tar.gz"> -->
|
|
<!ENTITY sendmail-download-http " ">
|
|
<!ENTITY sendmail-download-ftp "ftp://ftp.sendmail.org/pub/sendmail/sendmail.&sendmail-version;.tar.gz">
|
|
<!ENTITY sendmail-md5sum "a824fa7dea4d3341efb6462ccd816f00">
|
|
<!ENTITY sendmail-size "2.1 MB">
|
|
<!ENTITY sendmail-buildsize "14 MB">
|
|
<!ENTITY sendmail-time "0.2 SBU">
|
|
]>
|
|
|
|
<sect1 id="sendmail" xreflabel="sendmail-&sendmail-version;">
|
|
<?dbhtml filename="sendmail.html"?>
|
|
|
|
<sect1info>
|
|
<othername>$LastChangedBy$</othername>
|
|
<date>$Date$</date>
|
|
</sect1info>
|
|
|
|
<title>sendmail-&sendmail-version;</title>
|
|
|
|
<indexterm zone="sendmail">
|
|
<primary sortas="a-sendmail">sendmail</primary>
|
|
</indexterm>
|
|
|
|
<sect2 role="package">
|
|
<title>Introduction to sendmail</title>
|
|
|
|
<para>The <application>sendmail</application> package contains a Mail
|
|
Transport Agent (MTA).</para>
|
|
|
|
&lfs80_checked;
|
|
|
|
<bridgehead renderas="sect3">Package Information</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>Download (HTTP): <ulink url="&sendmail-download-http;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download (FTP): <ulink url="&sendmail-download-ftp;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download MD5 sum: &sendmail-md5sum;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download size: &sendmail-size;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated disk space required: &sendmail-buildsize;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated build time: &sendmail-time;</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<bridgehead renderas="sect3">sendmail Dependencies</bridgehead>
|
|
|
|
<bridgehead renderas="sect4">Required</bridgehead>
|
|
<para role="required">
|
|
<xref linkend="openldap"/> (client)
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
<para role="recommended">
|
|
<xref linkend="openssl10"/> and
|
|
<xref linkend="cyrus-sasl"/>
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Optional</bridgehead>
|
|
<para role="optional">
|
|
<xref linkend="gs"/> (for creating PDF documentation),
|
|
<xref linkend="procmail"/> (the configuration proposed below requires
|
|
that <command>procmail</command> be present at run-time), and
|
|
<ulink url="https://github.com/chaos/nph">nph</ulink>
|
|
</para>
|
|
|
|
<para condition="html" role="usernotes">User Notes:
|
|
<ulink url="&blfs-wiki;/sendmail"/></para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="installation">
|
|
<title>Installation of sendmail</title>
|
|
|
|
<para>Before building <application>sendmail</application>, create the
|
|
required user, group and directory with the following commands issued as
|
|
the <systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role="root"><userinput>groupadd -g 26 smmsp &&
|
|
useradd -c "Sendmail Daemon" -g smmsp -d /dev/null \
|
|
-s /bin/false -u 26 smmsp &&
|
|
chmod -v 1777 /var/mail &&
|
|
install -v -m700 -d /var/spool/mqueue</userinput></screen>
|
|
|
|
<note><para>See the source tree <filename>sendmail/README</filename> file
|
|
for information on linking optional packages into the build. Use the
|
|
example below, which adds support for SASL, StartTLS
|
|
(<application>OpenSSL</application>) and
|
|
<application>OpenLDAP</application>, as a starting point. Of course,
|
|
modify it to suit your particular needs.</para></note>
|
|
|
|
<screen><userinput>cat >> devtools/Site/site.config.m4 << "EOF"
|
|
<literal>APPENDDEF(`confENVDEF',`-DSTARTTLS -DSASL -DLDAPMAP')
|
|
APPENDDEF(`confLIBS', `-L/usr/lib/openssl-1.0 -lssl -lcrypto -lsasl2 -lldap -llber -ldb')
|
|
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl -I/usr/include/openssl-1.0')</literal>
|
|
EOF</userinput></screen>
|
|
|
|
<para>Install <application>sendmail</application> with the following
|
|
commands:</para>
|
|
|
|
<screen><userinput>cat >> devtools/Site/site.config.m4 << "EOF"
|
|
<literal>define(`confMANGRP',`root')
|
|
define(`confMANOWN',`root')
|
|
define(`confSBINGRP',`root')
|
|
define(`confUBINGRP',`root')
|
|
define(`confUBINOWN',`root')</literal>
|
|
EOF
|
|
|
|
sed -i 's|/usr/man/man|/usr/share/man/man|' \
|
|
devtools/OS/Linux &&
|
|
|
|
cd sendmail &&
|
|
sh Build &&
|
|
cd ../cf/cf &&
|
|
cp generic-linux.mc sendmail.mc &&
|
|
sh Build sendmail.cf</userinput></screen>
|
|
|
|
<para>This package does not come with a test suite.</para>
|
|
|
|
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role="root"><userinput>install -v -d -m755 /etc/mail &&
|
|
sh Build install-cf &&
|
|
|
|
cd ../.. &&
|
|
sh Build install &&
|
|
|
|
install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail &&
|
|
cp -v -R cf/* /etc/mail &&
|
|
|
|
install -v -m755 -d /usr/share/doc/sendmail-&sendmail-version;/{cf,sendmail} &&
|
|
|
|
install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
|
|
/usr/share/doc/sendmail-&sendmail-version; &&
|
|
|
|
install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
|
|
/usr/share/doc/sendmail-&sendmail-version;/sendmail &&
|
|
|
|
install -v -m644 cf/README /usr/share/doc/sendmail-&sendmail-version;/cf &&
|
|
|
|
for manpage in sendmail editmap mailstats makemap praliases smrsh
|
|
do
|
|
install -v -m644 $manpage/$manpage.8 /usr/share/man/man8
|
|
done &&
|
|
|
|
install -v -m644 sendmail/aliases.5 /usr/share/man/man5 &&
|
|
install -v -m644 sendmail/mailq.1 /usr/share/man/man1 &&
|
|
install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 &&
|
|
install -v -m644 vacation/vacation.1 /usr/share/man/man1</userinput></screen>
|
|
|
|
<para>Install the <application>sendmail</application> Installation and
|
|
Operations Guide with the following commands:</para>
|
|
|
|
<note><para>Remove <filename>op.pdf</filename> from the
|
|
<command>make</command> and <command>install</command> commands below if
|
|
you don't have <application>Ghostscript</application>
|
|
installed.</para></note>
|
|
|
|
<screen><userinput>cd doc/op &&
|
|
sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile &&
|
|
make op.txt op.pdf</userinput></screen>
|
|
|
|
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role="root"><userinput>install -v -d -m755 /usr/share/doc/sendmail-&sendmail-version; &&
|
|
install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-&sendmail-version; &&
|
|
cd ../..</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="commands">
|
|
<title>Command Explanations</title>
|
|
|
|
<para><command>cat > devtools/Site/site.config.m4 << "EOF"</command>:
|
|
This creates a configuration file changing some of the default settings.</para>
|
|
|
|
<para><command>sed ... devtools/OS/Linux</command>: The site.config.m4
|
|
does not honor a change to the man directory, so fix it in the OS
|
|
definitions.</para>
|
|
|
|
<para><command>sed ... include/sm/bdb.h</command>: This allows sendmail to
|
|
build properly with <xref linkend='db'/> versions 5 and above.</para>
|
|
|
|
<para><command>sh Build; sh Build sendmail.cf; sh Build install-cf;
|
|
sh Build install</command>: <application>sendmail</application> uses an
|
|
<application>m4</application> based build script to create the various
|
|
<filename>Makefile</filename>s. These commands build and install the
|
|
package.</para>
|
|
|
|
<para><command>for manpage in...;do...;done; install ...</command>: The man
|
|
pages are installed already formatted and <command>man</command> displays
|
|
them somewhat garbled. These commands replace the formatted pages with
|
|
pages <command>man</command> can display properly.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="configuration">
|
|
<title>Configuring sendmail</title>
|
|
|
|
<sect3 id="sendmail-config">
|
|
<title>Config Files</title>
|
|
|
|
<para><filename>/etc/mail/*</filename></para>
|
|
|
|
<indexterm zone="sendmail sendmail-config">
|
|
<primary sortas="e-etc-mail">/etc/mail/*</primary>
|
|
</indexterm>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Configuration Information</title>
|
|
|
|
<note><para>Ensure you have a fully qualified domain name defined
|
|
in <filename>/etc/hosts</filename> for your system before proceeding.
|
|
</para></note>
|
|
|
|
<para>Create the <filename>/etc/mail/local-host-names</filename> and
|
|
<filename>/etc/mail/aliases</filename> files using the following
|
|
commands as the <systemitem class="username">root</systemitem>
|
|
user:</para>
|
|
|
|
<screen role="root"><userinput>echo $(hostname) > /etc/mail/local-host-names
|
|
cat > /etc/mail/aliases << "EOF"
|
|
<literal>postmaster: root
|
|
MAILER-DAEMON: root</literal>
|
|
|
|
EOF
|
|
newaliases</userinput></screen>
|
|
|
|
<para><application>sendmail</application>'s primary configuration file,
|
|
<filename>/etc/mail/sendmail.cf</filename>, is complex and not meant to be
|
|
directly edited. The recommended method for changing it is to modify
|
|
<filename>/etc/mail/sendmail.mc</filename> and various
|
|
<application>m4</application> files, then run the <command>m4</command>
|
|
macro processor from within
|
|
<filename class='directory'>/etc/mail</filename> as follows:</para>
|
|
|
|
<screen role="root"><userinput>cd /etc/mail &&
|
|
m4 m4/cf.m4 sendmail.mc > sendmail.cf</userinput></screen>
|
|
|
|
<para>A full explanation of the files to modify, and the available
|
|
parameters can be found in <filename>/etc/mail/README</filename>.</para>
|
|
|
|
</sect3>
|
|
|
|
<sect3 id="sendmail-init">
|
|
<title><phrase revision="sysv">Boot Script</phrase>
|
|
<phrase revision="systemd">Systemd Unit</phrase></title>
|
|
|
|
<para>To automate the running of <application>sendmail</application>
|
|
at startup, install the
|
|
<phrase revision="sysv"><filename>/etc/rc.d/init.d/sendmail</filename>
|
|
init script</phrase>
|
|
<phrase revision="systemd"><filename>sendmail.service</filename>
|
|
unit</phrase> included in the
|
|
<xref linkend="bootscripts" revision="sysv"/>
|
|
<xref linkend="systemd-units" revision="systemd"/> package.</para>
|
|
|
|
<indexterm zone="sendmail sendmail-init">
|
|
<primary sortas="f-sendmail-init">sendmail</primary>
|
|
</indexterm>
|
|
|
|
<screen role="root"><userinput>make install-sendmail</userinput></screen>
|
|
|
|
<note>
|
|
<para>The -qNm option to <command>sendmail</command>, where N is number
|
|
of minutes, controls how often <application>sendmail</application> will
|
|
process the mail queue. A default of 5 minutes is used in the
|
|
<phrase revision="sysv">init script.</phrase>
|
|
<phrase revision="systemd">systemd unit.</phrase> Individual
|
|
workstation users may want to set this as low as 1 minute, large
|
|
installations handling more mail may want to set it higher.</para>
|
|
</note>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="content">
|
|
<title>Contents</title>
|
|
|
|
<segmentedlist>
|
|
<segtitle>Installed Programs</segtitle>
|
|
<segtitle>Installed Libraries</segtitle>
|
|
<segtitle>Installed Directories</segtitle>
|
|
|
|
<seglistitem>
|
|
<seg>editmap, mailstats, makemap, praliases, sendmail, smrsh,
|
|
and vacation; symlinks to /usr/sbin/sendmail: hoststat, mailq,
|
|
newaliases, and purgestat</seg>
|
|
<seg>None</seg>
|
|
<seg>/etc/mail, /usr/share/doc/sendmail-&sendmail-version;,
|
|
/var/spool/mqueue, and /var/spool/clientmqueue</seg>
|
|
</seglistitem>
|
|
</segmentedlist>
|
|
|
|
<variablelist>
|
|
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
|
<?dbfo list-presentation="list"?>
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
<varlistentry id="editmap">
|
|
<term><command>editmap</command></term>
|
|
<listitem>
|
|
<para>queries and edits <application>sendmail</application> map
|
|
files.</para>
|
|
<indexterm zone="sendmail editmap">
|
|
<primary sortas="b-editmap">editmap</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="hoststat">
|
|
<term><command>hoststat</command></term>
|
|
<listitem>
|
|
<para>prints <application>sendmail</application>'s persistent host
|
|
status.</para>
|
|
<indexterm zone="sendmail hoststat">
|
|
<primary sortas="b-hoststat">hoststat</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="mailstats">
|
|
<term><command>mailstats</command></term>
|
|
<listitem>
|
|
<para>displays <application>sendmail</application> statistics.</para>
|
|
<indexterm zone="sendmail mailstats">
|
|
<primary sortas="b-mailstats">mailstats</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="mailq-sendmail">
|
|
<term><command>mailq</command></term>
|
|
<listitem>
|
|
<para>prints a summary of outbound mail messages waiting for
|
|
delivery.</para>
|
|
<indexterm zone="sendmail mailq-sendmail">
|
|
<primary sortas="b-mailq">mailq</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="makemap">
|
|
<term><command>makemap</command></term>
|
|
<listitem>
|
|
<para>creates <application>sendmail</application> map files.</para>
|
|
<indexterm zone="sendmail makemap">
|
|
<primary sortas="b-makemap">makemap</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="newaliases-sendmail">
|
|
<term><command>newaliases</command></term>
|
|
<listitem>
|
|
<para>rebuilds <filename>/etc/mail/aliases.db</filename> from the
|
|
contents of <filename>/etc/mail/aliases</filename>.</para>
|
|
<indexterm zone="sendmail newaliases-sendmail">
|
|
<primary sortas="b-newaliases">newaliases</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="praliases">
|
|
<term><command>praliases</command></term>
|
|
<listitem>
|
|
<para>displays current <application>sendmail</application>
|
|
aliases.</para>
|
|
<indexterm zone="sendmail praliases">
|
|
<primary sortas="b-praliases">praliases</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="purgestat">
|
|
<term><command>purgestat</command></term>
|
|
<listitem>
|
|
<para> causes <application>sendmail</application> to clear (purge)
|
|
all its host-status information.</para>
|
|
<indexterm zone="sendmail purgestat">
|
|
<primary sortas="b-purgestat">purgestat</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="sendmail-prog-sendmail">
|
|
<term><command>sendmail</command></term>
|
|
<listitem>
|
|
<para>is the <application>sendmail</application> mail transport
|
|
agent.</para>
|
|
<indexterm zone="sendmail sendmail-prog-sendmail">
|
|
<primary sortas="b-sendmail">sendmail</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="smrsh">
|
|
<term><command>smrsh</command></term>
|
|
<listitem>
|
|
<para>is a restricted shell for
|
|
<application>sendmail</application>.</para>
|
|
<indexterm zone="sendmail smrsh">
|
|
<primary sortas="b-smrsh">smrsh</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="vacation-sendmail">
|
|
<term><command>vacation</command></term>
|
|
<listitem>
|
|
<para>is an email auto responder.</para>
|
|
<indexterm zone="sendmail vacation-sendmail">
|
|
<primary sortas="b-vacation">vacation</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|