Postfix verwendet eine Reihe von Lookup-Tabellen für die effiziente Suche nach Informationen zu Adressen-Ersetzung, Zugriffskontrolle u.a.. Bei einer Lookup-Tabelle für die Adressen-Ersetzung beispielsweise stellt die alte Adresse den Suchbegriff dar, während die neue Adresse dem Suchbegriff als Suchergebnis zugeordnet ist. In einer Lookup-Tabelle zur Zugriffskontrolle können z.B. alle lokalen Mail-Empfänger verzeichnet sein, die Postfix akzeptiert. Hier ist es für Postfix lediglich wichtig zu wissen, ob der Suchbegriff existiert. Das Suchergebnis als solches ist ohne Bedeutung.
Die über die Lookup-Tabellen zur Verfügung gestellten Informationen werden vom Administrator des Postfix Mail-Servers zunächst in gewöhnlichen Textdateien erfasst. Für einen performanten Zugriff auf diese Informationen verwendet Postfix jedoch nicht die vom Administrator erstellten Textdateien (Quelldateien), sondern so genannte Index-Dateien (indizierte Dateien), die der Administrator mithilfe der Programme postmap (siehe "postmap - Index-Dateien erzeugen und bearbeiten (Postfix-Format)") oder postalias (siehe "postalias - Index-Dateien erzeugen und bearbeiten (Alias-Format)") aus den Quelldateien generiert.
postalias unterscheidet sich von postmap durch das für postalias-Quelldateien (Alias-Dateien) geforderte Format, das wegen der Kompatibilität zum Sendmail-Server geringfügig vom Quelldatei-Format der anderen Postfix-Quelldateien für Lookup-Tabellen abweicht (siehe "Postfix-Lookup-Tabellen (Index-Dateien)").
Zwei verschiedene Typen von Index-Dateien
Die BS2000-Portierung von Postfix unterstützt zwei verschiedene Typen von Index-Dateien:
hash-Dateien: Die Suche basiert hier auf Hash-Tabellen und -Algorithmen.
btree-Dateien: Die Suche basiert hier auf Balanced-Tree (B-Tree)-Strukturen und -Algorithmen.
Im Standardfall empfiehlt sich die Verwendung des hash-Formats. Der Einsatz von btree-Dateien kann sinnvoll sein, wenn bei sehr großen Lookup-Tabellen im hash-Format Performance-Probleme auftreten.
Die bei Postfix grundsätzlich mögliche Ablage von Lookup-Tabellen in externen Datenbanken oder Verzeichnissen wie NIS, MySQL oder LDAP wird von der BS2000-Portierung derzeit nicht unterstützt.
Allgemeines Postfix-Format für postmap-Quelldateien
Ein Eintrag (logische Zeile) in einer postmap-Quelldatei hat die folgende Syntax:
Schlüssel Leerraum Wert
Schlüssel
Suchbegriff
Leerraum
Leerraum besteht aus einer Folge von Leerzeichen und/oder Tabulatorzeichen. Leerraum muss mindestens ein Leerzeichen oder Tabulatorzeichen enthalten.
Wert
Information, die dem Suchbegriff zugeordnet ist.
Darüber hinaus gelten für den Aufbau einer logischen Zeile die folgenden Regeln:
Eine logische Zeile kann sich über mehrere Text-Zeilen erstrecken.
Eine logische Zeile beginnt mit einem vom Leerraum verschiedenen Text.
Eine Zeile, die mit einem Leerraum beginnt, setzt eine logische Zeile fort.
Leerzeilen und Zeilen, die - eventuell nach einem Leerraum - mit „#“ beginnen, werden von postmap ignoriert.
Format für postalias-Quelldateien (Alias-Dateien)
Mithilfe von Alias-Namen lässt sich der Benutzeranteil einer lokalen Empfängeradresse durch eine oder mehrere Empfängeradressen ersetzen.
Als Empfängeradressen können Sie angeben:
lokale Adressen
ferne Adressen
Programme, an die Nachrichten übergeben werden
Dateien, in die Nachrichten gesichert werden.
Die Alias-Namen werden durch Einträge in eine Alias-Datei definiert. Der Standard-Dateiname der Alias-Datei lautet /etc/postfix/aliases.
Ein Alias-Eintrag (Alias-Definition) hat die folgende Syntax:
Name: Wert1, Wert2, Wert3, ..., Wert
n
Name
Benutzeranteil einer lokalen Empfängeradresse. Enthält der Benutzeranteil einer lokalen Empfängeradresse Sonderzeichen wie „@“ oder Leerzeichen, so muss er in doppelte Hochkommata ("") eingeschlossen werden. Der Wert des Benutzeranteils einer lokalen Empfängeradresse wird stets in Kleinbuchstaben abgespeichert.
Die Alias-Datei muss immer die Einträge für die lokalen Namen „postmaster“ und „MAILER-DAEMON“ enthalten (Anforderung des RFC 822).
Wert1, Wert2, Wert3, ..., Wertn
Eine oder mehrere Empfängeradressen.
Als Wert i, i = 1 ... n, kann angegeben werden:
lokaler Name (z.B. sysroot)
ferne Adresse (z.B. user@domain.com)
/
DateiIn diesem Fall wird die Nachricht standardmäßig an das Ende der Datei Datei angehängt. Mithilfe des Parameters allow_mail_to_ files in der Postfix-Konfigurationsdatei main.cf können Sie dieses Verhalten unterdrücken.
|
ProgrammIn diesem Fall wird die Nachricht standardmäßig über eine Pipe an einen Programmaufruf Programm übergeben. Mithilfe des Parameters allow_mail_to_commands in der Datei main.cf können Sie dieses Verhalten unterdrücken. Enthält der Programmaufruf Sonderzeichen (insbesondere Leerzeichen), dann müssen Sie den Programmaufruf in doppelte Hochkommata ("") setzen.
:include:
DateiDatei ist eine Textdatei, mit der Sie z.B. Mailing-Listen definieren können. Die Mails werden an die in diesen Mailing-Listen verzeichneten Empfänger gesendet. Leerzeilen sowie Zeilen, die mit „#“ beginnen, werden ignoriert. Alle anderen Zeilen von Datei haben die gleiche Syntax wie die rechten Seiten von Alias-Einträgen, d.h.
Wert 1, Wert 2, ..., Wert
n.
Bei
:include:
Datei werden Einträge für das Anhängen an Dateien (|
Datei) sowie die Übergabe an Programmaufrufe über eine Pipe (|Programm) werden standardmäßig ignoriert. Mithilfe der main.cf-Parameter allow_mail_to_ files und allow_mail_to_commands können Sie das standardmäßige Anhängen an Dateien bzw. die standardmäßige Übergabe an Programmaufrufe aktivieren.owner
-aliasname: owner_mail_adresseMit diesem Eintrag definieren Sie für die Mailing-Liste aliasname einen Eigentümer bzw. Verwalter, der die Mail-Adresse owner_mail_adresse besitzt. Im Fehlerfall (unzustellbare Mail) wird dann eine Benachrichtigung an owner_mail_adresse gesendet und nicht an den Mail-Absender, da der Eigentümer/Verwalter der Mailing-Liste in der Regel besser auf Zustellprobleme reagieren kann als der Mail-Absender.
Wenn z.B. eine Mailing-Liste mit Namen „dbadmin“ definiert ist, definiert der folgende Eintrag die Mail-Adresse (hier: „owner-mail-adresse“
)
des Eigentümers der Mailing-Liste:owner-dbadmin: owner-mail-adresse
Steht nach Abschluss der Alias-Umsetzung fest, dass die Nachricht einem lokalen Benutzer zugestellt werden soll, dann prüft Postfix, ob das Home-Verzeichnis dieses Benutzers eine Datei .forward enthält. Trifft dies zu, dann wird eine weitere Stufe der Alias-Umsetzung durchgeführt, in der die .forward-Datei nach denselben Regeln interpretiert wird wie eine Alias-Datei.
Beispiel
Nachfolgend ist ein Beispiel für eine Alias-Datei abgedruckt.
# Alias-Datei # Fehlermeldungen an postmaster weiterleiten und an die # Logging-Datei /var/adm/mailerr anhängen MAILER-DAEMON: postmaster, /var/adm/mailerr # Postmaster auf Systemverwalter-Kennung weiterleiten postmaster: sysroot # An Systemverwalter adressierte Nachrichten an # reale Person weiterleiten sysroot: mueller # Programm fuer automatische Mail-Beantwortung auto-test: |"/home/rwk/auto-test -i 3" # Mailing-Liste dbadmin: :include:/home/admin/db-admins owner-dbadmin: postmaster
Fehler, wie z.B. nicht zustellbare Mails an dbadmin
, werden durch dieses owner-dbadmin
-Alias nicht an den ursprünglichen Absender der Mail gesendet, sondern an postmaster
.
Inhalt von /home/admin/db-admins:
amueller@firma.example bmeier@firma.example dhuber@firma.example /home/admin/db-admins.maillog