| Mailfilter-Dateien für zentrale Mail-Zustellung im URZ |
| Heinrich-Heine-Universität Düsseldorf | Universitätsrechenzentrum |
Achtung: Diese Information ist jetzt - Ende Dezember 2000 - obsolet. Seit der Umstellung der Software am 28.12.2000 werden Mailfilter-Dateien nicht mehr unterstützt. Die meist verwendeten Standardfunktionen wurden zu diesem Zeitpunkt automatisch umgesetzt in Zustellungs-Optionen der neuen Software. Als Ersatz für eine echte Mailfilter-Programmierung mit Bedingungen und Verteilung in verschiedene Schubfächer bieten wir jetzt schon und auch künftig procmail an.Weitere Hinweise zur Umstellung finden Sie auf einer eigenen Seite.
| <- Postmaster's Page | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Zustellung der EMail ...individuell gesteuert |
Die Zustellung einer EMail an Ihre Adresse, wenn Sie eine zentrale
EMail-Kennung im Universitätsrechenzentrum der
Heinrich-Heine-Universität Düsseldorf besitzen, geht normalerweise in der
Weise, daß diese EMail in Ihren persönlichen Briefkasten gestellt wird,
d.h. an die Ihrer Kennung gehörende Mailbox-Datei auf dem Mail-Server
angehängt wird. Diese können Sie dann über das Post Office Protocol (POP)
von einem PC o.ä. mit einem Mail-Programm wie Eudora oder Netscape Mail
abrufen und lesen oder - wenn Sie unter Ihrer Kennung auch die
Benutzungsrechte für die Sun-Rechner des URZ besitzen - mit einem Mail-Programm
auf einem dieser Sun-Rechner verarbeiten (z.B. mit
elm,
pine oder
mailtool.
Anders ist dies, wenn Sie eine sogenannte Mailfilter-Datei besitzen. Dann werden alle Details der Zustellung allein über die in dieser Datei enthaltenen Anweisungen gesteuert mit z.B. folgenden Möglichkeiten:
Die Einrichtung einer solchen Datei ist nicht trivial - eher eine kleine Programmieraufgabe - und Fehler in dieser Datei können dazu führen, daß Sie garkeine Post mehr bekommen oder auch z.B. erwartete Mail vernichtet wird. |
||||||||||||
|
Voraussetzung für die Einrichtung einer Mailfilter-Datei
|
Vom Zustellprogramm des Mail-Servers wird die Mailfilter-Datei unter dem
Namen .mailfilter im Home-Verzeichnis zu der jeweiligen
Benutzerkennung gesucht. Seit 6.3.1998 besitzen alle Mail-Kennungen ein
eigenes Home-Verzeichnis.
Wenn Sie auch die Berechtigung für die Sun-Rechner des URZ besitzen,
ist dies das gleiche Verzeichnis, daß Sie auch beim Login unter der
Sun-Kennung in der Unix-Shell vorfinden.
In jedem Fall können Sie eine passende Mailfilter-Datei kreieren oder bearbeiten (bzw. wieder entfernen), wenn Sie sich z.B. mit Telnet auf dem Mail-Server mail.rz.uni-duesseldorf.de (= sirene.rz.uni-duesseldorf.de) einloggen, und zwar über den Menüpunkt 5. |
||||||||||||
|
Inhalt der Datei .mailfilter
|
Der Inhalt der .mailfilter-Datei sind Anweisungen in einer eigenen kleinen Skriptsprache, die vom Zustellprogramm zum Zeitpunkt der Zustellung unter Ihrer Berechtigung interpretiert und ausgeführt werden. Die Skriptsprache erinnert von der Syntax an die Programmiersprache C; Anweisungen werden immer mit Semikolon ; abgeschlossen, Blöcke in geschweiften Klammern { } eingeschlossen. Kommentare sehen allerdings aus wie in der Shell: Zeilen, die mit dem Nummernzeichen # beginnen. | ||||||||||||
|
Zustellung in eine Mailbox-Datei
unixfile file |
unixfile "$(mailbox)"; Zustellung in die Standard-Mailbox-Datei, deren Name von der System-Verwaltung voreingestellt ist. Achtung: auf dem Mail-Server heißt sie intern anders als auf dem Sunserver1; nur diese Art der Dateiangabe stellt sicher, daß die Mail auch über den POP-Server gelesen werden kann. unixfile ".mail"; Zustellung in eine Datei .mail im Home-Verzeichnis im traditionellen Sendmail-Format. file ".mail"; Zustellung in eine Datei .mail im Home-Verzeichnis im MMDF-Format: Die Mails werden durch Zeilen mit vier Control-A-Zeichen getrennt, nicht mit Zeilen, die mit dem Wort From und einem Leerzeichen beginnen. Achtung: Alle Mailprogramme auf der Sun sind so übersetzt, daß sie das "Unix"-Format erwarten und nicht dieses MMDF-Format. file "/dev/null"; Zustellung in den Reißwolf; diese Methode ist zwar außerordentlich effizient, sollte aber nur unter vorher genau getesteten Bedingungen vorgenommen werden. |
||||||||||||
|
"Pipen" der Mail durch ein Kommado
pipe ignore pipe |
[ignore] pipe "command ...";
Das angegebene Kommando wird ausgeführt und erhält die EMail (Header und Body) als Standardeingabe. Ein vorangestelltes ignore bedeutet, daß ein Fehler bei der Ausführung des Kommandos ignoriert, die EMail trotzdem als zugestellt betrachtet wird. Ansonsten wird ein Exit-Status des Kommandos zwischen 1 und 127 als temporärer Fehler betrachtet - die Zustellung wird mehrfach erneut versucht - und einer ab 128 als permanenter Fehler - die Mail wird als unzustellbar an den Absender zurückgeschickt.Bei uns werden die Mailfilter-Dateien im restricted mode ausgeführt, d.h. es sind nur Kommandos aus einem festen Verzeichnis auf dem Server zugelassen, die ohne Pfad direkt mit ihrem Namen aufgerufen werden können. Diese Kommandos werden unten besprochen. Hier ein Beispiel:
unixfile "$(mailbox)"; pipe "resend -t x@y.z"; Mail wird zusätzlich zur Standardzustellung an anderen Empfänger mit Resent-To-Header geschickt. |
||||||||||||
|
Bedingte Anweisungen
if ... else |
if ( $(from) == /laute-liste/ ) unixfile "Mail/laute-liste";
else {
unixfile "$(mailbox)";
}
Alles mit Absenderadressen (im From:), die den String laute-liste enthalten, wird in einen speziellen Folder gesteckt (höchste Effizienz: "/dev/null"), alles andere in die Standard-Mail-Spool-Datei.Auf ähnliche Weise können andere Header-Felder wie Subject oder Sender getestet werden. Innerhalb der Schrägstriche steht allgemein ein regulärer Ausdruck. Vor Ausführung des Vergleichs wird der Inhalt der Variablen auf der linken Seite des Vergleichsoperators in Kleinschreibung umgesetzt; verwenden Sie deshalb in dem Vergleichsausdruck rechts keine Groß-, sondern nur die entsprechenden Kleinbuchstaben. Als Vergleichsoperatoren gibt es == (gleich) und != (ungleich); mehrere Vergleiche können mittels der logischen Operatoren && (und) und || (oder) verknüpft werden. Außer dem Test auf den Inhalt bestimmter Header-Felder kann im if die System-Variable delivered abgefragt werden, ggf. mit vorangestelltem Verneinungsoperator !: unixfile "Mail/inbox"; # Wenn das nicht klappt - z.B. Quota ueberschritten if (! delivered) unixfile "$(mailbox)"; |
||||||||||||
|
Kommandos in der Mailfilter-Datei
|
|
||||||||||||
|
Bearbeiten der Mailfilter-Datei
|
Wenn Sie sich über Telnet auf dem Mail-Server selbst (Hostname
mail.rz.uni-duesseldorf.de)
einloggen und bereits eine Mailfilter-Datei besitzen, finden Sie zwei neue
Menuepunkte zum Editieren (5) bzw. Checken (5c) Ihrer Mailfilter-Datei.
Wenn Sie noch keine Mailfilter-Datei eingerichtet haben, hat der
Menuepunkt 5 die Bedeutung, die Datei neu anzulegen; es wird die entsprechende
Daie .mailfilter mit einem Standardinhalt erzeugt und zum Editieren
angeboten.
Zum Editieren wird der Editor pico aufgerufen. Dieser ist einfach und selbst erklärend: Die über Kontrolltasten-Kombinationen abrufbaren Editorkommandos werden am unteren Bildschirmrand in einer Statuszeile angezeigt. Wird das Editorfenster nicht komplett mit dieser Statuszeile dargestellt, so liegt dies vermutlich daran, daß der Terminaltyp oder die Terminalgröße vom Telnet-Programm nicht richtig bekannt gemacht wurde. In diesem Fall hilft nur, den Editor durch Eingabe von Control+x sofort zu verlassen. (Speziell bei dem eingebauten Telnet-Programm von Windows 95 würde ich eine Funktionsfähigkeit nicht garantieren.) Zum Checken der installierten Mailfilter-Datei wird eine Absenderadresse (From:) und ein Inhalt für Subject: abgefragt und das Checkprogramm ckmf mit einer Dummy-Mail mit solchen Header-Zeilen als Eingabe aufgerufen. Als Ergebnis bekommen Sie entweder Syntax-Fehler angezeigt - schon um solche etwaigen Fehler auszuschalten, sollten Sie von dieser Check-Funktion nach jeder Änderung der Mailfilter-Datei Gebrauch machen - oder die Zustellungsaktionen für eine Mail mit diesem From und Subject aufgelistet. Es wird nichts wirklich zugestellt, sondern nur angegeben, was gemacht würde. Wenn Sie die Mailfilter-Datei auf einem PC erstellen und mit FTP auf den (Sun-, nicht Mail-)Server bringen, so wählen Sie bitte unbedingt den Text-Übertragungsmodus. Die Carriage Return-Zeichen in PC-Textdateien werden vom Mailfilter-Parser als Schmutz betrachtet, und bei Fehlern in der Mailfilter-Datei entfällt die Zustellung! |
||||||||||||