Bei der Einrichtung eines Systems für das Hosting von vielen Domains bietet sich die Konfiguration mit virtuellen Mailboxen an.
In der Haupt-Konfigurationsdatei von Postfix
/etc/postfix/main.cf
wird die grundlegende Konfiguration
für diese Aufgabe vorgenommen. Die Einstellungen welche Domains und
Adressen auf dem System verfügbar sind, erfolgt mit Hilfe der
entsprechenden Tabellen (maps). Im hier aufgeführten Beispiel
sind die Tabellen als Datenbankdateien ausgeführt. Bei Systemen mit
mehreren 100 bis 1000 Domains und entsprechend vielen Benutzern bietet
es sich an die Tabellen in Datenbanken (PostgreSQL, MySQL) oder in
einem LDAP Verzeichnis abzulegen.
main.cf
virtual_mailbox_domains = /var/mail/virtual_domains virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_alias_maps = hash:/etc/postfix/virtual virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000
In der Datei virtual_domains
sind die virtuell zu
behandelnden Domains zeilenweise aufgeführt.
lw-systems.com lw-systems.de
Das Basis-Verzeichnis der Virtuellen Mailboxen. Postfix legt die
Mailboxen (bzw. Maildirs) bei der Auslieferung automatisch an. Der
genaue Teilpfad zur Mailbox wird in der Tabelle
virtual_mailbox_maps
festgelegt.
Diese Tabelle legt den relativen Pfad zur Mailbox ab
virtual_mailbox_base
fest. Falls der Name der Mailbox
mit einem Slash (/) endet, wird anstatt einer MBox Datei ein
Maildir erzeugt.
# catchall (hier nicht aktiviert) #@lw-systems.de lw-systems.de/info/ karin@lw-systems.de lw-systems.de/karin/ klaus@lw-systems.de lw-systems.de/klaus/ herbert@lw-systems.de lw-systems.de/herbert/
Die Mapping Tabelle für die Aliase in virtuellen Domains. Hier werden die Weiterleitungen für einzelne Adressen konfiguriert. Darunter fällt auch die Konfiguration einer Catchall Adresse, die letztendlich eine Weiterleitung aller nicht näher definierten E-Mail Adressen an eine einzelne Adresse darstellt.
# catchall mit mehreren Zieladressen @lw-systems.de karin@lw-systems.de, klaus@lw-systems.de external@lw-systems.de horst@external.com office@lw-systems.de karin@lw-systems.de # wegen catchall in "virtual_alias_maps" notwendig, # da sonst alle Adressen schon hier vom Catchall # abgefangen werden. herbert@lw-systems.de herbert@lw-systems.de karin@lw-systems.de karin@lw-systems.de klaus@lw-systems.de klaus@lw-systems.de
Bei der Auswertung dieser Tabelle besitzen spezifischere Einträge eine höhere Priorität als allgemeine Einträge. Der Catchall Eintrag wird daher nur für Adressen der Domain lw-systems.de gültig, für die kein spezifischer Eintrag enthalten ist.
Die Konfiguration einer Catchall Adresse bringt auch mit sich,
dass jede gültige Adresse hier in der Form adresse
adresse
konfiguriert werden muss. Ansonsten würde die Adresse
auf den Catchall gemappt, bevor die Abfrage der
virtual_mailbox_maps
zum Tragen kommt
(s.a. Grafik). Aus diesem Grunde sollte das Mapping der Catchall
Adresse erst in der virtual_mailbox_map
erfolgen. Allerdings ist dort nur das Zuweisen einer einzelnen Mailbox
möglich. Eine Verteilung an mehrere Acconts kann nicht vorgenommen
werden.
Die minimale UID, die für einen Eintrag in
virtual_uid_maps
erlaubt ist.
Die UID und GID mit der der virtual(8) Prozess die Aktionen beim Ausliefern der E-Mail in eine Mailbox oder ein Maildir durchführt.