There is no longer a need for SMTP with UUCP in the handbook

Discussed with:	swills, brd
This commit is contained in:
Eitan Adler 2013-05-19 03:14:25 +00:00
parent 082cf66772
commit 4acccc80bd
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=41677

View file

@ -74,10 +74,6 @@
<para>How to troubleshoot common mail server problems.</para>
</listitem>
<listitem>
<para>How to use SMTP with UUCP.</para>
</listitem>
<listitem>
<para>How to set up the system to send mail only.</para>
</listitem>
@ -1300,141 +1296,6 @@ freefall MX 20 who.cdrom.com</programlisting>
</sect2>
</sect1>
<sect1 id="SMTP-UUCP">
<title>SMTP with UUCP</title>
<para>The <application>sendmail</application> configuration
that ships with FreeBSD is designed for sites that connect
directly to the Internet. Sites that wish to exchange their
mail via UUCP must install another
<application>sendmail</application> configuration file.</para>
<para>Tweaking <filename>/etc/mail/sendmail.cf</filename> manually
is an advanced topic. <application>sendmail</application>
version 8 generates config files via &man.m4.1; preprocessing,
where the actual configuration occurs on a higher abstraction
level. The &man.m4.1; configuration files can be found under
<filename>/usr/share/sendmail/cf</filename>. The file
<filename>README</filename> in the <filename>cf</filename>
directory can serve as a basic introduction to &man.m4.1;
configuration.</para>
<para>The best way to support UUCP delivery is to use the
<literal>mailertable</literal> feature. This creates a database
that <application>sendmail</application> can use to make
routing decisions.</para>
<para>First, you have to create your <filename>.mc</filename>
file. The directory
<filename>/usr/share/sendmail/cf/cf</filename> contains a
few examples. Assuming you have named your file
<filename>foo.mc</filename>, all you need to do in order to
convert it into a valid <filename>sendmail.cf</filename>
is:</para>
<screen>&prompt.root; <userinput>cd /etc/mail</userinput>
&prompt.root; <userinput>make foo.cf</userinput>
&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
<para>A typical <filename>.mc</filename> file might look
like:</para>
<programlisting>VERSIONID(`<replaceable>Your version number</replaceable>') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw <replaceable>your.alias.host.name</replaceable>
Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
<para>The lines containing
<literal>accept_unresolvable_domains</literal>,
<literal>nocanonify</literal>, and
<literal>confDONT_PROBE_INTERFACES</literal> features will
prevent any usage of the DNS during mail delivery. The
<literal>UUCP_RELAY</literal> clause is needed to support UUCP
delivery. Simply put an Internet hostname there that is able to
handle .UUCP pseudo-domain addresses; most likely, you will
enter the mail relay of your ISP there.</para>
<para>Once you have this, you need an
<filename>/etc/mail/mailertable</filename> file. If you have
only one link to the outside that is used for all your mails,
the following file will suffice:</para>
<programlisting>#
# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
. uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
<para>A more complex example might look like this:</para>
<programlisting>#
# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:</programlisting>
<para>The first three lines handle special cases where
domain-addressed mail should not be sent out to the default
route, but instead to some UUCP neighbor in order to
<quote>shortcut</quote> the delivery path. The next line
handles mail to the local Ethernet domain that can be delivered
using SMTP. Finally, the UUCP neighbors are mentioned in the
.UUCP pseudo-domain notation, to allow for a
<literal><replaceable>uucp-neighbor
</replaceable>!<replaceable>recipient</replaceable></literal>
override of the default rules. The last line is always a single
dot, matching everything else, with UUCP delivery to a UUCP
neighbor that serves as your universal mail gateway to the
world. All of the node names behind the
<literal>uucp-dom:</literal> keyword must be valid UUCP
neighbors, as you can verify using the command
<literal>uuname</literal>.</para>
<para>As a reminder that this file needs to be converted into a
DBM database file before use. The command line to accomplish
this is best placed as a comment at the top of the
<filename>mailertable</filename> file. You always have to
execute this command each time you change your
<filename>mailertable</filename> file.</para>
<para>Final hint: if you are uncertain whether some particular
mail routing would work, remember the <option>-bt</option>
option to <application>sendmail</application>. It starts
<application>sendmail</application> in <emphasis>address test
mode</emphasis>; enter <literal>3,0</literal>, followed
by the address you wish to test for the mail routing. The last
line tells you the used internal mail agent, the destination
host this agent will be called with, and the (possibly
translated) address. Leave this mode by typing
<keycombo action="simul">
<keycap>Ctrl</keycap><keycap>D</keycap></keycombo>.</para>
<screen>&prompt.user; <userinput>sendmail -bt</userinput>
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter &lt;ruleset&gt; &lt;address&gt;
<prompt>&gt;</prompt> <userinput>3,0 foo@example.com</userinput>
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo &lt; @ example . com . &gt;
<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
</sect1>
<sect1 id="outgoing-only">
<sect1info>
<authorgroup>