|
Das UNIX Mailsystem
Man kann aber auch Benutzer erreichen, die gerade nicht am Rechner arbeiten.
Mit dem Mail-System kann elektronische Post an andere Benutzer verschickt werden. Zu diesem Zweck gibt es das Verzeichnis /var/spool/mail(früher '/usr/mail' oder '/var/mail'), in dem für jeden Benutzer, der Post erhalten hat, eine Datei existiert, deren Name mit dem Loginnamen des Benutzersübereinstimmt. Mit den Kommandos mail oder der Erweiterung mailx kannPost an andere Benutzer verschickt werden und die empfangene elektronischePost bearbeitet werden. An dieser Stelle wird die lokale Nutzung des Mail-Systemsbehandelt, später dann die Anwendung im Netz. Übrigens - mit'Mail' meine ich immer die elektronische Mail von Computer zu Computer.Zunächst das primitivste aller Mail-Programme:
Post versenden mail Login-Name(n)
Versenden von Post an einen oder mehrere andere Benutzer.
Bei mehreren Namen sind diese durch Leerzeichen zu trennen. Mail liest
den Text von der Standardeingabe. Der Text kann nicht nur mit CTRL-D (End
of File) sondern auch mit einer Zeile beendet werden, die nur einen Punkt
enthält.
Das Mail-Kommando ergänzt den Brief um einen Briefkopf,
in dem Absender und Absendezeitpunkt verzeichnet sind. Der Mailkopf enthält
einzelne Zeilen, die sich anhand eines Schlüsselwortes identifizieren
lassen ("From", "To", usw.). Zum Versand an ferne Rechner käme dann
noch ein "Briefumschlag" hinzu. Normalerweise sorgt das Mail-Kommando nicht
selbst für den Versand, sondern es übergibt den Brief an ein
anderes, speziell für den Mailversand konzipiertes Programm.
Wir haben es hier also mit einem Frontend, dem 'Mail User Agent' (mail, mailx, elm,
pine,...), und einem Backend, dem 'Mail Transport Agent' (sendmail, smail,
...), zu tun. Der MTA sorgt auch für die Weiterleitung ankommender
Post an den richtigen Empfänger.
Kann der Brief nicht zugestellt werden
(z. B. unbekannter Empfänger), gibt mail eine Fehlermeldung aus. Gleichzeitig
erhält man den eigenen Brief, ergänzt um Zusatzinformationen
per mail retour. Fehlerhafte Briefe werden auch (je nach Einstellung des
MTA) an einen besonderen Pseudo-Empfänger namens 'postmaster' geschickt.
Dieser Benutzer steht nicht in der Passwortdatei, sndern es ist ein sogenanntes
'Mail-Alias' für den Systemverwalter oder einen Beauftragten. An den
'postmaster' kann man sich auch wenden, wenn man Fragen im Zusammenhang
mit Mail hat (z. B. wenn man einen Empfänger sucht). Beispiel für das
Versenden einer Mail:
$ mail markus
Lieber Markus,
leider habe ich dich heute nicht getroffen. Ich brauche
dringend das UNIX-Buch, das ich Dir neulich geliehen habe.
Bitte leg es doch in mein Fach. Danke.
Gruss, Hans
.
Wenn der Benutzer markus mehrere Mails
erhalten hat, wird er über diesen Brief nicht besonders glücklich
sein, denn jeder Mailer (MUA) zeigt normalerweise erst einmal den Absender
und eine Betreff-Zeile an. Letztere besitzt aber der obige Brief garnicht.
Man sollte also eine "Subject:"-Zeile anbringen. Das geht recht gut mit
dem verbesserten 'mail'-Kommando, 'mailx'. Hier kann man in der Kommandozeile
ein "Subject" angeben:
mailx -s "UNIX-Buch" markus
....
'mail' und 'mailx' werden eigentlich nur noch verwendet, wenn nichts besseres da
ist - oder wenn es darum geht in Kommandodateien (Shellskripts) Mail automatisch zu
versenden, da man mit Ausgabeumleitung oder Pipe die Ausgabe eines Programms
direkt an den MUA übergeben kann.
Eine Nachricht über eingegangene Post erhält der Benutzer beim Login mit
der Meldung you have mail.
Er kann dann mit einem Mail-Kommando seine Post ansehen (und gleich antworten).
Der Unterschied zum Senden besteht bei mail und mailx im Fehlen der Empfänger-Logins.
mail arbeitet interaktiv - man kann so alle Briefe nacheinander bearbeiten.
Die obige Ausgabe stützt sich auch auf das Mail-Kommando.
mail [-ehpqr] [-f datei] [-F login-name]
Bearbeiten empfangener Briefe.
Die zuletzt eingegangenen Briefe werden zuerst angezeigt (LIFO).
Optionen:
-e | Keine Bearbeitung, nur anzeigen, ob Post vorliegt. mail antwortet
mit 0 oder 1 (=keine Post/Post). |
-h | Nur numerierte Liste der Briefköpfe anzeigen, danach in den
interaktiven Modus gehen. |
-p | Alle Briefe ohne interaktive Steuerung ausgeben. |
-q | Abbruchtaste beendet mail (im Normalfall wird damit nur die Ausgabe
des aktuellen Briefs abgebrochen). |
-r | Anzeige der Briefe nach Alter, den ältesten zuerst (FIFO). |
-f datei | mail bietet die Möglichkeit, Briefe in einer benutzereigenen
Datei zu speichern. Statt des Standardnamens "mbox" wird der angegebene Name verwendet. |
Beim Lesen der Post im interaktiven Modus (der Aufruf von mail ohne
Parameter ist die Regel) meldet sich mail mit dem Fragezeichen als Prompt.
Danach können zahlreiche Kommandos gegeben werden. Die Ausgabe kann
mit CTRL-S angehalten und mit CTRL-Q fortgesetzt werden. Für den Anfang
reichen ein paar Tasten:
CR,n,+ | zum nächste Brief gehen |
d | löscht den angezeigten Brief (markiert als "gelöscht") |
p | aktuellen Brief nochmals ausgeben. |
- | vorherigen Brief nochmals ausgeben. |
s | Brief in der Datei mbox speichern. Hinter s kann auch ein Dateiname angegeben werden. |
w | wie s, jedoch ohne Briefkopf. m Brief weiterleiten. Hinter m muß ein Login-Name angegeben werden. |
r | Antworten, der Empfänger wird von mail dem Brief entnommen. |
! | Ausführen des hinter dem ! angegebenen UNIX-Kommandos. |
q | mail verlassen, als gelöscht markierte Briefe entfernen |
x | mail abbrechen - alles bleibt, wie es war. |
Das Kommand 'mailx' zeigt beim Start zumindest eine Übersicht der eingegangenen Post
(Subject und Absender) und bietet komfortablere Bearbeitung (z. B. Löschen
aller Mails auf einmal oder die oben erwähnte Subject-Angabe).
Programme wie 'elm', 'pine' oder 'mutt' arbeiten interaktiv und stellen eine komfortablere
Benutzer-Schnittstelle dar. Deshalb werden sie normalerweise verwendet. Eine detaillierte
Beschreibung dieser Programme würde jedoch den Rahmen dieses Skripts sprengen.
Weiterleiten von Mails
Bei früheren Versionen von 'mail' konnte die Post an einen
anderen Benutzer mit der Option "-F login-name" umgeleitet werden (z. B.
für die Urlaubsvertretung). Vorher muß der Briefkasten vollständig
geleert werden. Die Umleitung erlaubt natürlich auch das Weiterschicken
an den eigenen Account auf fremden Rechnern (so laufen z. B. alle Mails
an den Systemadministrator auf einem Rechner zusammen).
Bei allen sendmail- oder smail-basierten Systemen ist die Umleitung einfacher. Der
Benutzer muß lediglich in seinem Home-Directory eine Datei namens ".forward"
anlegen und in dieser Datei eine (korrekte) Mailadresse eintragen. Sollen
mehrere Empfänger angesprochen werden, sind die Namen durch Kommas
zu trennen.
Der Mechanismus geht jedoch noch weiter. Wird eine Datei mit
vollständigem Pfad angegeben (die Weiterleitungszeile beginnt also
mit einem '/'), dann landet die Post in der angegebenen Datei. Ein weiterer
Schritt ist die Angabe einer Pipe in ein Programm oder Skript, das die
Mail weiterverarbeitet (z. B. "| tuwas"). Beim Erstellen des Skripts ist
zu beachten, daß keinerlei Pfade oder Voreinstellungen vorausgesetzt
werden dürfen und gewisse Sicherheitsmaßnahmen zu beachten sind.
Ein recht bekanntes Programm, das eingehende Mail vorsortieren oder unerwünschte
Mail gleich löschen kann ist beispielsweise 'procmail'.
Mailsysteme, die auf 'smail' oder 'sendmail' basieren, bieten noch einige weitere
Features. Die Datei /etc/aliases ist hier von besonderem Interesse, da sich damit
einige Mail-Dienste realisieren lassen:
- Durch Eintrag eines Mail-Alias kann entweder eine Mailadresse dauerhaft
umgeleitet werden (ohne .forward im Home-Verzeichnis des Users). Man trägt
einfach den Usernamen und die Zieladresse ein, z. B.
plate: plate@fh-muenchen.de
- Es lassen sich aber auch lokale Aliase eintragen, beispielsweise für die Adressen,
die jedes System haben sollte:
postmaster: holzmann
webmaster: plate
admin: root
....
- Es lassen sich auch Mailverteiler eintragen:
netmaster: plate,holzmann,root
Eine E-Mail an "netmaster" wird im Beispiel an drei verschiedene Accounts geschickt.
- Die Zieladressen des Mailverteilers lassen sich auch in einer Datei speichern.
Diese Datei kann irgendeinem Benutzer gehören, der diese "Mailingliste" verwaltet.
Eine Mailingliste ist schon optisch günstiger, als eine endlose Reihe von Adressaten
im Mail-Header. Ausserdem erfährt so nicht jeder, wer noch auf dem Mailverteiler
ist. Die Zeile in /etc/aliases verweist auf die Datei:
wichtel: :include:/home/plate/wichtel-mailingliste
Die Datei enthält einfach in jeder Zeile eine komplette Mailadresse.
Durch Hinzufügen und Löschen von Zeilen kann die Liste aktualisiert werden.
|
|
|