29.8. SMTP über UUCP

Die sendmail-Konfigurationsdatei, die mit FreeBSD ausgeliefert wird, ist für Systeme geeignet, die direkt ans Internet angeschlossen sind. Systeme, die ihre E-Mails per UUCP austauschen wollen, müssen eine andere Konfigurationsdatei installieren.

Die manuelle Bearbeitung von /etc/mail/sendmail.cf ist nur etwas für Puristen. Sendmail Version 8 bietet die neue Möglichkeit der Generierung von Konfigurationsdateien über eine Vorverarbeitung mit m4(1), wobei die tatsächliche, händische Konfiguration auf einer höheren Abstraktionsstufe stattfindet. Sie sollten die Konfigurationsdateien unter /usr/src/usr.sbin/sendmail/cf benutzen. Die Datei README im Verzeichnis cf kann zur grundlegenden Einführung in die m4(1)-Konfiguration dienen.

Zur Zustellung über UUCP sind Sie am besten damit beraten, die mailertable-Datenbank zu benutzen. Mit dieser Datenbank ermittelt sendmail mit welchem Protokoll und wohin eine E-Mail zugestellt werden soll.

Zunächst müssen Sie Ihre .mc-Datei erstellen. Das Verzeichnis /usr/share/sendmail/cf/cf ist die Basis für diese Dateien. Sehen Sie sich um, es gibt bereits einige Beispiele. Wenn Sie Ihre Datei foo.mc genannt haben, müssen Sie die folgenden Befehle ausführen, um sie in eine gültige sendmail.cf umzuwandeln:

# cd /etc/mail
# make foo.cf
# cp foo.cf /etc/mail/sendmail.cf

Eine typische .mc-Datei könnte so aussehen:

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

Die Einstellungen accept_unresolvable_domains, nocanonify und confDONT_PROBE_INTERFACES werden die Benutzung von DNS bei der Zustellung von Mails verhindern. Die Klausel UUCP_RELAY wird aus seltsamen Gründen benötigt – fragen Sie nicht, warum. Setzen Sie dort einfach den Namen eines Hosts ein, der in der Lage ist, Adressen mit der Pseudodomäne .UUCP zu behandeln; wahrscheinlich werden Sie dort den Relayhost Ihres ISP eintragen.

Wenn Sie soweit sind, müssen Sie die Datei /etc/mail/mailertable erzeugen. Hierzu wieder ein typisches Beispiel:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
.  uucp-dom:your.uucp.relay

Ein komplexeres Beispiel könnte wie folgt aussehen:

#
# 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:

Die ersten drei Zeilen behandeln spezielle Fälle, in denen an Domänen adressierte E-Mails nicht über die Standard-Route versendet werden sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg “abzukürzen”. Die nächsten Zeilen behandeln E-Mails an Rechner in der lokalen Domain. Diese Mails können direkt per SMTP zugestellt werden. Schließlich werden die UUCP-Nachbarn in der Notation mit der Pseudodomäne .UUCP aufgeführt, um die Standardregeln mit uucp-neighbour!recipient zu überschreiben. Die letzte Zeile besteht stets aus einem einzelnen Punkt, der als Ihr Universalgateway in die Welt dient. Alle Knoten hinter dem Schlüsselwort uucp-dom: müssen gültige UUCP-Nachbarn sein, was Sie mit dem Befehl uuname überprüfen können.

Als Erinnerung daran, dass diese Datei in eine DBM-Datenbankdatei konvertiert werden muss, bevor sie benutzt werden kann, sollte der Befehl hierzu als Kommentar am Anfang der mailertable plaziert werden. Sie müssen den Befehl jedes Mal ausführen, wenn Sie die mailertable geändert haben.

Abschließender Hinweis: Wenn Sie unsicher sind, ob bestimmte Zustellwege funktionieren, erinnern Sie sich an die Option -bt von sendmail. Sie startet sendmail im Adress-Testmodus; geben Sie einfach 3,0, gefolgt von der Adresse, für die Sie den Zustellweg testen möchten, ein. Die letzte Zeile nennt Ihnen den benutzten Mailagenten, den Zielhost, mit dem dieser Agent aufgerufen wird und die (möglicherweise übersetzte) Adresse. Verlassen Sie diesen Modus, indem Sie Ctrl+D eingeben.

% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 [email protected]
canonify           input: foo @ example . com
...
parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
> ^D

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.