diff --git a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml b/en_US.ISO8859-1/books/handbook/mail/chapter.sgml index 9045a1f93a..0840a4412c 100644 --- a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml +++ b/en_US.ISO8859-1/books/handbook/mail/chapter.sgml @@ -1129,6 +1129,146 @@ freefall MX 20 who.cdrom.com + + SMTP with UUCP + + The sendmail 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 + sendmail configuration file. + + Tweaking /etc/mail/sendmail.cf manually + is an advanced topic. Sendmail 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 + /usr/src/usr.sbin/sendmail/cf. + + If you did not install your system with full sources, the + sendmail config stuff has been broken out into a separate source + distribution tarball. Assuming you have your FreeBSD source code + CDROM mounted, do: + + &prompt.root; cd /cdrom/src +&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src +contrib/sendmail + + This extracts to only a few hundred kilobytes. The file + README in the cf + directory can serve as a basic introduction to m4 + configuration. + + The best way to support UUCP delivery is to use the + mailertable feature. This creates a database + that sendmail can use to make routing decisions. + + First, you have to create your .mc + file. The directory + /usr/src/usr.sbin/sendmail/cf/cf contains a + few examples. Assuming you have named your file + foo.mc, all you need to do in order to + convert it into a valid sendmail.cf + is: + + &prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf +&prompt.root; make foo.cf +&prompt.root; cp foo.cf /etc/mail/sendmail.cf + + A typical .mc file might look + like: + + VERSIONID(`Your version number') OSTYPE(bsd4.4) + +FEATURE(accept_unresolvable_domains) +FEATURE(nocanonify) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') + +define(`UUCP_RELAY', your.uucp.relay) +define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw your.alias.host.name +Cw youruucpnodename.UUCP + + The lines containing + accept_unresolvable_domains, + nocanonify, and + confDONT_PROBE_INTERFACES features will + prevent any usage of the DNS during mail delivery. The + UUCP_RELAY 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. + + Once you have this, you need an + /etc/mail/mailertable file. If you have + only one link to the outside that is used for all your mails, + the following file will suffice: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +. uucp-dom:your.uucp.relay + + A more complex example might look like this: + + # +# makemap hash /etc/mail/mailertable.db < /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: + + + 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 + shortcut 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 + uucp-neighbor + !recipient + 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 + uucp-dom: keyword must be valid UUCP + neighbors, as you can verify using the command + uuname. + + 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 mailertable. + You always have to execute this command each time you change + your mailertable. + + Final hint: if you are uncertain whether some particular + mail routing would work, remember the + option to sendmail. It starts sendmail in address test + mode; simply enter 3,0, 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 Control-D. + + &prompt.user; sendmail -bt +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +> 3,0 foo@example.com +canonify input: foo @ example . com +... +parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > +> ^D + + SMTP Authentication