Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Usenet News Up: Datenreisen und reisende Daten Previous: UUCP - Das Internet der

Subsections


Elektronische Post mit smail

   

Einer der am weitesten verbreiteten Dienste, die durch die Vernetzung von Rechnern möglich werden, ist die elektronische Post, meist Email genannt. Email erlaubt es Benutzern auf unterschiedlichen Rechnern - auch auf entgegengesetzten Seiten des Erdballs - miteinander zu kommunizieren, und zwar erheblich schneller, als es mit gewöhnlicher Post jemals möglich wäre. Im Internet benötigt eine Botschaft oft nur wenige Minuten von Europa in die USA. In reinen UUCP-Netzen ist ein elektronischer Brief natürlich wesentlich länger unterwegs, da er die meiste Zeit seiner Reise auf den Spool-Platten diverser Rechner verbringt. Trotzdem kann sich die Beförderungsgeschwindigkeit immer noch mit der der Deutschen Bundespost messen.  

Zur Beförderung von Email sind natürlich Standards vonnöten, damit Maschinen, die Botschaften miteinander austauschen, einander überhaupt verstehen. Ein solcher Standard ist RFC 822, der das Format von Mails im Internet regelt. Da viele UUCP-Netze eng an das Internet angebunden sind, hat sich RFC 822 auch in diesen weitgehend durchgesetzt. Wie es mit Standards so geht, hat natürlich jedes zweite Netz seinen eigenen. Wir werden uns hier jedoch nur mit RFC 822 beschäftigen.

Wie sieht eine Mail denn nun aus?

    Eine Mail ist im wesentlichen eine Datei, die den Text Ihres Briefes enthält. Ein Teil dieser Datei besteht aus administrativen Daten, wie den Adressen von Absender und Empfängern, die, ganz wie im richtigen Leben, im Kopf des Briefes untergebracht sind. Wir werden diesen Teil im folgenden allgemein mit Kopf bezeichnen, oder mit dem englischen Ausdruck message header; den eigentlichen Text der Botschaft nennen wir Rumpf oder message body.

Ein elektronischer Brief könnte beispielsweise so aussehen:

 

From fluxus.in-berlin.de!susanne Thu Jul 15 09:16:21 1994 remote from fluxus
Return-Path: <fluxus.in-berlin.de!cicero.in-berlin.de!susanne>
Received: from cicero.in-berlin.de by isis.in-berlin.de with uucp
        (Smail3.1.28.1 #6) id m0oGNY2-0000H9B; Thu, 15 Jul 94 10:16 MET DST
Received: by cicero.in-berlin.de from fluxus.in-berlin.de
        msg-id m0zF9AR.000G2Za; Thu, 15 Jul 94 09:00 MET DST
Received: by fluxus.in-berlin.de
        id AA0043n; Tue, 15 Jul 94 08:53:33 CET
Message-Id: <9407130840.AA02871@fluxus.in-berlin.de>
Date: Tue, 15 Jul 94 08:53:32 MESZ
From: Susanne Bois <susanne@fluxus.in-berlin.de>
To: karla@isis.in-berlin.de (Karla Kosolowski)
Subject: Linux 3.1 draussen

Hi, Karla,

seit gestern läuft bei mir auch Linux 3.1. Ich kann Dir
mal ein Band bespielen und es rueberschieben, wenn Du willst.

Susanne

Der Kopf des Briefes - der gesamte Bereich bis zur ersten Leerzeile - enthält die administrativen Informationen, die in einzelne Felder aufgeteilt sind. Jedes Feld beginnt mit einem Namen, gefolgt von einem Doppelpunkt, und dem eigentlichen Inhalt des Feldes. Dieses Feld kann auch auf der nächsten Zeile fortgesetzt werden, wenn die Zeile mit einem Einschub (TAB) beginnt. Einige der Informationen sind eher technischer Art, wie die Received: Felder, andere sind durchaus auch für die Empfängerin von Interesse, wie die Zeile Date:, die das Datum der Erstellung enthält, und Subject:, in der die Absenderin dem Brief eine Art Betreff-Zeile voranstellt. Die meisten dieser Felder werden von der Mail-Software automagisch ausgefüllt, beispielsweise Datum und Absenderadresse.

Adressen, Adressen, Adressen

    Wenn Sie einem Menschen einen Brief oder eine Postkarte schreiben, werden Sie diese natürlich mit dessen Anschrift versehen, bestehend aus Namen, Straße und Hausnummer sowie Wohnort. Auf ähnliche Weise müssen Sie natürlich auch der Transport-Software mitteilen, wie der Empfänger Ihres elektronischen Briefs zu erreichen ist. Verschiedene Netze haben dafür natürlich auch unterschiedliche Adressierungsarten und -formate. Uns werden aber nur zwei Formate interessieren: der traditionelle UUCP bang path, oder !-Pfad, und das RFC 822-Format.

Beiden Adreßformaten ist gemeinsam, daß sie aus je einer Benutzer- und einer Rechnerbezeichnung bestehen; d. h. ein Teil der Adresse beschreibt den Empfänger, meist durch dessen Benutzerkennung, während der andere den Zielrechner beschreibt, auf dem die Person überhaupt zu erreichen ist. Im obigen Beispiel bestand karla@isis.in-berlin.de aus den Teilen isis.in-berlin.de, dem vollständigen Namen des Rechners, und karla, dem Login-Namen von Karla. Beide werden durch das ``@''-Symbol voneinander getrennt. Diese Adressen-Schreibweise entspricht den Vorschriften von RFC 822.

Dem !-Pfad sind wir bereits im vorigen Abschnitt bei der Einführung in die Welt von UUCP begegnet, wo fluxus!tauris eine Abfolge von Rechnern bezeichnete, über die ein bestimmter Auftrag übermittelt werden sollte. Diese Schreibweise wurde früher in UUCP-Netzen auch häufig zur Adressierung von Mail benutzt und findet heute noch innerhalb der Transport-Software Verwendung. Dabei wird, getreu dem Motto ``Der Weg ist das Ziel'', das Zielsystem nicht durch einen eindeutigen Namen angegeben, sondern durch eine Auflistung der Systeme, über die es erreichbar ist. Um beispielsweise einen Brief an Jens auf dessen Maschine tauris zu senden, müßte Karla die Adresse fluxus!tauris!jens verwenden. Eine solche Adresse teilt der Email-Software mit, daß sie die Nachricht an fluxus übermitteln soll, das diese an tauris weiterreichen wird, wo sie an den Benutzer jens ausgeliefert werden wird. Diese Form der Adressierung wird jedoch nur noch äußerst selten verwendet, weswegen wir uns an dieser Stelle nicht weiter mit ihr beschäftigen werden.

Sie sehen in diesen Beispielen auch zwei Arten, ein System zu benennen: einerseits mit seinem einfachen ``Vornamen'', wie isis, und mit seinem vollen Namen, isis.in-berlin.de. Letzterer wird auch als der kanonische Hostname bezeichnet. Den zusätzlichen Teil des Namens (in-berlin.de) nennt man die Domain, d. h. den Bereich, dem der Rechner zugehörig ist. Domains wurden eingeführt, als dank der stark ansteigenden Zahl von vernetzten Rechnern sinnvolle Namen knapp zu werden begannen, und es auch immer schwieriger wurde, den Überblick über die Netzwerk-Topologie zu behalten. Die Idee von Domains ist, größere Gruppen von Systemen, die geographisch oder organisatorisch eng verbunden sind, in ``Meta-Systeme'' zusammenzufassen und mit einem gemeinsamen Gruppennamen zu belegen. Dies erleichtert unter anderem das Mail-Routing ganz ungemein, spielt aber auch in anderen Bereichen eine Rolle.

Taler, Taler, Du mußt wandern

     Um in einem Netzverbund eine Botschaft von einem System zu einem anderen schicken zu können, muß die Transport-Software wissen, auf welchem Weg sie diese befördern kann. Die Aufgabe, einen korrekten und möglichst optimalen Pfad zu finden, wird als Routing bezeichnet. In Lokalen Netzen (LANs) und dem Internet ist dies im allgemeinen recht einfach, da der Zielrechner meist direkt angesprochen werden kann.[*]

In UUCP-Netzen ist das schon kniffliger, da die Botschaft dabei durch die Hände mehrerer Systeme gereicht werden muß. Die einfachste Lösung ist der !-Pfad, der dem Benutzer die knifflige Aufgabe überläßt, einen zuverlässigen Pfad vom lokalen System zum Zielsystem zu finden. Diese Lösung ist natürlich unbefriedigend; es wäre angenehmer, wenn das System diese Pfade selbständig generieren würde, wenn man ihm nur den Zielrechner angibt.

Dies kann beispielsweise durch die Verwendung einer sogenannten pathalias-Datei erreicht werden. In einer solchen Datei werden Rechnern oder ganzen Domains !-Pfade zugeordnet, über die sie erreichbar sind. Wenn Sie Ihren gesamten Verkehr über nur ein UUCP-System abwickeln, werden Sie eine solche Datei allerdings nie benötigen, da es noch eine dritte Möglichkeit gibt - nämlich die Arbeit auf andere abzuwälzen.

Bei dieser Methode stellt sich Ihre Email-Software (absichtlich) dumm, und überläßt es dem intelligenteren System, aus den Adressen der Zielrechner vernünftige Pfade zu erzeugen. Der gängige Begriff hierfür ist smart-host routing.

Email-Software unter Linux

   In der UN*X-Welt gibt es verschiedene Programme zur Erstellung und Beförderung von Email. Eins der bekanntesten Benutzer-Programme ist elm, das Ihnen ein Cursor-gesteuertes Menü zur Verfügung stellt, von dem aus Sie Botschaften versenden und die Nachrichten in Ihrem Briefkasten lesen können. elm wird in einem der folgenden Abschnitte näher beschrieben. Daneben gibt es noch viele weitere Programme, die alle ungefähr dieselbe Funktionalität bieten, jedoch in unterschiedlichen Graden der Benutzerfreundlichkeit.

Natürlich ist die Benutzer-Software nur der eine Teil des Post-Systems; der andere Teil ist die Transport-Software. Auch hier gibt es verschiedene Pakete, beispielsweise sendmail. Das wurde ursprünglich für das Unix der Universität in Berkeley geschrieben, und auf den meisten UN*X-Plattformen verwendet. Für Linux existiert eine Portierung des sendmail-5.56c mit den IDA-Erweiterungen. Der neue sendmail-8.6.9 schließlich läßt sich ganz ohne Probleme auf Linux compilieren.

sendmail steht allerdings in dem (früher sicherlich berechtigten) Ruf, für Anfänger schwer installierbar zu sein, weshalb viele ein anderes Paket für ihren Email-Transport verwenden: smail-3.1.28. Dieses Programm wurde von Landon Curt Noll und Robert S. Karr geschrieben und stellt ausreichende Funktionalität für kleinere bis mittlere Systeme zur Verfügung. Im folgenden Abschnitt werden die notwendigen Schritte für die Installation von smail auf einem UUCP-System dargelegt.

Installation von smail

   Abhängig von der Linux-Distribution, die Sie verwenden, finden Sie smail samt einiger zugehöriger Programme entweder in /usr/bin oder /usr/local/bin. Außerdem muß eine Kopie von smail als /usr/lib/sendmail vorhanden sein. Ferner benutzt smail eine oder mehrere Konfigurationsdateien, die allesamt in /usr/lib/smail beziehungsweise /usr/local/lib/smail abgelegt werden. Falls Sie sich nicht sicher sind, in welchem Verzeichnis diese Dateien abgelegt werden, können Sie das Verzeichnis mit folgendem Befehl erfragen:

 smail -bP smail_lib_dir

Wir werden im folgenden die Konfiguration für ein System besprechen, das mit nur einem weiteren System per UUCP kommuniziert. Natürlich bleibt unser Beispiel weit hinter den Möglichkeiten von smail zurück; mehr darüber können Sie in den Manual-Seiten zu smail erfahren, sowie im Linux Networking Guide.

Die config-Datei

   Die wichtigste Konfigurations-Datei ist config. Für Karlas System könnte die Datei beispielsweise folgendermaßen aussehen:

#
# config file for isis.in-berlin.de
#
hostnames=isis.in-berlin.de
visible_name=isis.in-berlin.de
uucp_name=isis.in-berlin.de
#
smart_path=fluxus
smart_transport=uux
#
error_copy_postmaster

Zeilen, die mit einem Doppelkreuz beginnen, sind Kommentare und werden ignoriert. Alle Einträge in der Datei besetzen verschiedene Konfigurations-Variablen. Die ersten drei Variablen legen den Namen des Systems für verschiedene Operationen fest; in diesem Fall ist dies immer isis.in-berlin.de. Die genauen Bedeutungen dieser Variablen können Sie der Dokumentation entnehmen. Im Falle eines einzelnen Computers genügt es, wenn Sie alle drei Variablen mit dem kanonischen Namen Ihres Systems besetzen.

Die Variablen smart_path und smart_transport beziehen sich auf das oben vorgestellte smart-host routing. Erstere enthält den UUCP-Namen des Rechners, über den Sie alle ausgehenden Nachrichten ausliefern. In Karlas Fall geht alle Post über fluxus. Die zweite Variable teilt smail den Transport mit, über den dies erfolgen soll; ein Wert von uux bezeichnet die Auslieferung über UUCP an das Programm rmail auf dem nächsten Rechner, also fluxus. Dies ist die Standard-Methode, um in einem UUCP-Netz Post zu transportieren.

Die letzte Variable, error_copy_postmaster, ist eine Boolesche Variable. Wird sie wie in der Beispieldatei gesetzt,[*] wird der Benutzer postmaster von jedem Fehler bei der Auslieferung einer Botschaft benachrichtigt und erhält eine Kopie derselben.

Neben config kennt smail noch einige weitere Konfigurationsdateien, die aber zum Funktionieren einer einfachen Installation nicht nötig sind: routers, directors und transports, die Details des Routing, der lokalen Auslieferung sowie des Transports zu anderen Systemen regeln. Wenn diese Dateien nicht existieren, verwendet smail sinnvolle Default-Werte.

Elektronische Post mit elm

   In der UN*X-Welt gibt es verschiedene Programme zur Erstellung und Beförderung von Email. Eins der bekanntesten Benutzer-Programme ist elm, das Ihnen ein Cursor-gesteuertes Menü zur Verfügung stellt, von dem aus Sie Botschaften versenden und die Nachrichten in Ihrem Briefkasten lesen können. Die Oberfläche von elm könnte sich Ihnen beispielweise darstellen wie in Abb. 7.11 gezeigt.

Sie sehen hier eine mäßig gefüllte Mailbox; in der Mitte werden die Nachrichten der aktuellen Mailbox mit laufender Nummer, Absender, Zeilenzahl und Betreff-Zeile angezeigt. Der Pfeil am linken Rand markiert die aktuelle Nachricht, auf die sich alle der in dem kleinen Hilfsmenü angezeigten Funktionen beziehen. Wenn Sie im obigen Beispiel an der Eingabeaufforderung RETURN eingeben, wird elm die Nachricht eines gewissen Sebastian Hetze anzeigen. Wenn Sie elm das erste Mal starten, wird Ihre Mailbox allerdings im Allgemeinen leer sein.

 

          Mailbox is '/usr/mail/okir' with 22 messages [ELM 2.4 PL17]


     12  Jul 28 Vince Skahan       (128)  Re: Some questions for the NAG
     13  Jul 28 Vince Skahan       (1256) Linux news/mail/uucp compilation
     14  Aug 4  Juergen Unger      (273)  Re: UUCP config (anon uucp)
     15  Aug 5  Vince Skahan       (58)   Re: anon UUCP.
     16  Oct 9  Barry Flanagan     (85)   Re: your mail
     17  Oct 21 E. Marinyak        (79)   Network configuring
     18  Oct 25 E. Marinyak        (79)   Re: Network configuring
     19  Nov 9  Shyh-Horng Jou     (58)
     20  Nov 24 Wolfgang Michaelis (54)   Re: Neues Release (war nix)
     21  Nov 28 obarriga@abello.se (42)   Okie dokie
->   22  Dec 2  Sebastian Hetze    (38)   Telefonnummer


   You can use any of the following commands by pressing the first character;
 d)elete or u)ndelete mail,  m)ail a message,  r)eply or f)orward mail,  q)uit
    To read a message, press <return>.  j = move down, k = move up, ? = help

Command:_
Hauptmenü des Mail-Readers elm.
Um mit dem Programm vertraut zu werden, können Sie zunächst ein wenig herumexperimentieren. Haben Sie bereits smail installiert, so können Sie jetzt nämlich bereits Post an andere Benutzer auf Ihrem Rechner verschicken, ohne daß weiterer Aufwand dazu nötig wäre.

Sie starten dazu elm von der Shell aus. Wenn Sie elm zum allerersten Mal aufrufen, werden Sie danach gefragt, ob elm zwei Verzeichnisse in Ihrem Benutzer-Verzeichnis anlegen darf; antworten Sie hierauf mit ``y(es)''. Dann erscheint das Hauptmenü und zeigt aller Wahrscheinlichkeit nach eine leere Mailbox.

Wollen Sie nun eine Botschaft schreiben und abschicken, geben Sie an der Eingabeaufforderung w ein, und werden nacheinander nach der Adresse des Empfängers, der Betreff-Zeile, und eventuellen weiteren Empfängern gefragt. Im folgenden Beispiel schicken Sie eine Test-Botschaft an sich selbst; Ihre Eingaben sind kursiv gesetzt:

 

Command: Mail
Send the message to: karla
Subject of message: Test
Copies to: <Return>
Invoking editor...

Anschließend ruft elm einen Editor auf, in dem Sie Ihren Brief erstellen. Der voreingestellte Editor ist meist vi. Da dies nicht jedermenschs Sache ist, stellen wir weiter unten eine Möglichkeit vor, dies zu ändern.

Nachdem Sie Ihren Brief geschrieben, abgespeichert und den Editor verlassen haben, stellt elm Ihnen folgende Frage:

Please choose one of the following options by parenthesized letter: s
             e)dit message, edit h)eaders, s)end it, or f)orget it.

Um den Brief tatsächlich abzuschicken, drücken Sie entweder s oder RETURN. Die Option e bringt Sie wieder in den Editor zurück, und f wirft den Brief weg (falls Sie sich anders entschieden haben sollten). Mit der Option h gelangen Sie in ein Menü, in dem Sie den Kopf der Botschaft editieren können; dort können Sie beispielweise die Liste der Empfänger oder die Betreff-Zeile verändern.

Nachdem Sie Ihren Brief abgeschickt haben, sollte Ihre Festplatte etwas rattern, und zunächst wieder die unverändert leere Mailbox dargestellt werden. Das liegt daran, daß smail Ihren Brief im Hintergrund ausliefert. Nachdem das Rattern der Platte dann etwas nachgelassen hat, sollten Sie irgendeine Taste drücken (beispielsweise eine Cursor-Taste); elm nimmt dies zum Anlaß, nachzuprüfen, ob neue Post eingetroffen ist. Ist alles gutgegangen, erscheint in Ihrer Mailbox jetzt Ihre Testnachricht, und Sie können sie anzeigen lassen, indem Sie die Return-Taste drücken.

elm-Konfiguration

   Um mit elm auch Post über das Netz verschicken zu können, müssen Sie ihn ebenfalls noch konfigurieren. Die elm-eigene Konfigurations-Datei befindet sich meistens im Verzeichnis /usr/lib/elm oder /usr/lib, und heißt elm.rc. Für unser Beispiel-System isis könnte sie beispielsweise so aussehen:

 

# elm.rc
#
hostname      = isis 
hostdomain    = .in-berlin.de
hostfullname  = isis.in-berlin.de
#
# Transport von Umlauten etc.
charset       = iso-8859-1
displaycharset= iso-8859-1
textencoding  = 8bit
#
# Editor für Mails
editor        = /usr/bin/emacs
Die ersten drei Befehle teilen elm den Namen des lokalen Systems mit, aufgespalten in den eigentlichen Rechner-Namen und den Domain-Namen.

Die folgenden drei Variablen erzeugen Informationen im Mail-Kopf, die helfen sollen, Sonderzeichen heil durch das Netz zu manövrieren. Im US-ASCII-Standard-Zeichensatz sind nämlich Zeichen wie die uns so vertrauten Umlaute keineswegs vorhanden; es gibt sie nur in erweiterten Zeichensätzen, wie beispielsweise dem von DOS bekannten IBM-Zeichensatz. Linux benutzt zur Darstellung von internationalen Zeichen einen anderen Standard, bekannt unter dem Namen ISO-8859-1. Um der transportierenden und empfangenden Mail-Software mitzuteilen, daß eventuell in der Nachricht auftauchende Umlaute in diesem Standard kodiert sind, kann elm diese Information in den Mail-Kopf einfügen.

Die letzte Variable ist die versprochene Methode, den vi-Editor durch einen anderen Editor zu ersetzen, hier durch EMACS.    

Parameter, die Sie in der Datei elm.rc einstellen, gelten für alle Benutzer. Nun kann es aber vorkommen, daß manche Benutzer elm gerne anders konfigurieren würden. Das ist grundsätzlich möglich, da elm neben der globalen Konfigurations-Datei auch noch eine private Konfigurations-Datei kennt, nämlich .elm/elmrc in Ihrem Heimatverzeichnis. Sie können diese Werte in dieser Datei auch verändern, indem Sie in elm das Konfigurations-Menü aufrufen (mit dem Befehl o) und die veränderten Werte anschließend abspeichern.

Ein Test

   Um zu testen, ob Ihre Konfiguration korrekt ist, versuchen Sie, eine Nachricht an einen Benutzer auf einem anderen System zu schicken, beispielsweise an die Administratoren des UUCP-Systems, an das Sie sich angeschlossen haben. Wenn Sie die Nachricht mit elm erstellen, geben Sie nach der Eingabeaufforderung ``Send the message to:'' die volle Adresse an, z.B. root@cicero.in-berlin.de.

Nachdem Sie die Nachricht geschrieben und abgeschickt haben, können Sie mit folgendem Befehl überprüfen, ob sie auch tatsächlich an UUCP weitergegeben worden ist:

 

$ uustat -a
ciceroC0001 cicero "" 12-06 22:39 Executing rmail root (sending 436 bytes)

Die Ausgabe sollte ähnlich wie die zweite Zeile dieses Beispiels aussehen. Sie zeigt an, daß für das System cicero der Auftrag aufgegeben wurde, den Befehl ``rmail root'' auszuführen, und eine zusätzliche Datei von 436 Bytes - die eigentliche Mail - zu übertragen.

Sollte der Befehl uustat allerdings keine Ausgabe zeigen, ist etwas schiefgelaufen. In diesem Falle finden Sie im Verzeichnis /var/spool/smail/log die Log-Dateien logfile und paniclog; diese sollten aufschlußreiche Fehlermeldungen enthalten. Falls der Fehler innerhalb der UUCP-Konfiguration zu suchen ist, können Sie auch die entsprechenden UUCP-Log-Files zu Rate ziehen. Sollten Sie mit Hilfe dieser Fehlermeldungen nicht in der Lage sein, den Fehler zu beheben, hilft wohl nur noch, zu weiterführender Dokumentation zu greifen.


next up previous contents index
Next: Usenet News Up: Datenreisen und reisende Daten Previous: UUCP - Das Internet der

Das Linux Anwenderhandbuch
(C) 1997 LunetIX