Ist ein Rechner nur über eine Wähverbindung mit dem
Internet verbunden, sind in der Regel zwei Probleme zu lösen. Das
erste ist ein Pfeil in der falschen Richtung im Bild rechts:
Über die Wählverbindung kann der
Provider natürlich keine Mail zum Kunden schicken, der Kunde
muss sie abholen. Unix-üblich wird diese Aufgabe einem
weiteren Programm übertragen: Fetchmail.
Die neue Architektur bietet gegenüber einem MUA, der POP3 oder
IMAP direkt unterstützt, bereits den Vorteil, das Mail ohne
bestehende Internetverbindung geschrieben werden kann, um dann
gebündelt versandt zu werden. Zugegeben, es gibt MUAs, die auch
dieses Batching von Mail beherrschen. Sie werden damit natürlich
noch größer und unhandlicher.
Das zweite Problem ist ärgerlicher: der Rechner hat keinen Namen. Das Unix-Mailsystem erwartet eigentlich, dass jeder Rechner unter einem Namen bekannt ist, und ihn Mail auch unter diesem Namen erreicht. Leider weiß das heute übliche Desktop-Betriebssystem nichts davon, und so haben sich die Internetprovider abgewöhnt, Rechner- bzw. Domainnamen zu vergeben (eine Entwicklung, die es nicht nur wegen der schwierigen Sendmail-Konfiguration wert ist, bekämpft zu werden).
Technisch wäre das übrigens kein Problem. Provider könnten ihren Kunden Domainnamen zuweisen und Mail für eine komplette Domain in ein POP3-Postfach legen. Alternativ kann Mail wie bisher gespoolt werden, aber die SMTP-Verbindung wird vom Client aufgebaut, der dann den Server anweist, ihm Mail zu senden. Unix-Mail würde wie früher funktionieren, nur eben über Dialup-Verbindungen. Leider wollen die Provider davon nichts wissen, also müssen wir den MTA dazu bringen, die Absenderadresse der Mail zu fälschen. Genau für diese Aufgabe existiert übrigens Masqmail, mit Sendmail ist sie aber auch lösbar.
Wenn jeder Benutzer nur genau eine EMail-Adresse hat (eigentlich
der Normalfall), geht alles mit Bordmitteln von Sendmail. Das ist
eigentlich der typische Fall, wo man vielleicht eine Email-Adresse von
der Uni bekommt (mai96ise@studserv.uni-leipzig.de), sich
aber zu Hause nicht gerade als mai96ise einloggen
möchte.
Das peinliche daran ist, dass ich nach dem Vortrag auf diese einfache Methode hingewiesen wurde, und zugeben mußte, nie etwas davon gehört zu haben. Das spricht zumindest nicht für die verfügbare Sendmail-Dokumentation, nicht einmal die FAQs weisen auf die Genericstable hin, sondern bringen arme Benutzer auf die Idee, eigene Rulesets zu schreiben - siehe dazu das nächste Kapitel
In Sendmail-Sprech gibt es lokale oder private Email-Adressen. Das
sind solche, mit denen sich keine Mail empfangen läßt, z.B.
udo@localhost.localnet. "Echte" Email-Adressen,
also die häßlichen wie
mai96ise@studserv.uni-leipzig.de, heißen
generisch. Weiß man das, findet man auch das
zugehörige Feature: die Genericstable.
Die Genericstable ist eine gewöhnliche Datenbank (ein kompiliertes Textfile also) und muss nur in der Sendmailkonfiguration aktiviert werden. Dem Makrofile ist dazu nur eine Zeile hinzuzufügen:
FEATURE(genericstable)
Die Tabelle selbst setzt Loginnamen auf Email-Adressen um. Sie enthält Zeilen wie diese:
udo mai96ise@studserv.uni-leipzig.de
Sendmail legt die Datenbank in /etc/mail/genericstable
ab, sie muss also noch mit cd /etc/mail; makemap genericstable
<genericstable kompiliert werden.