Ralf Hildebrandt schrieb am 27.06.13 14:10:
* Hubert Schölnast <hubert@schoelnast.at>:

Aber aus anderen Erläuterungen muss ich schließen, dass ich
dieselben Domains auch in virtual_mailbox_maps eintagen muss,
Nur wenn du eine Zustellung durch postfix's "virtual" wünscht. Willst
Du das? Das klang bisher nicht danach.
Is mir aber sowas von egal welcher Transport-Agent das macht. Hauptsache die Mails landen dort wo sie hingehören.

postfix's "virtual" ist nur eine Krücke; ein abgespeckter "local"
Die Sache mit den Transport-Agents und Adressklassen habe ich so verstanden:

local
Der Agent "local", der defaultmäßig in $local_tansport eingetragen ist, und somit die Adressklasse "local" versorgt, legt E-Mails in Dateien oder Verzeichnissen von Unix-Usern ab. Das betrifft alle E-Mails, deren Domain-Teile in einer dieser Listen steht: $mydestination, $inet_interfaces, $proxy_interfaces. Innerhalb dieser Domains sind alle Adressen gültig, die in $local_recipient_maps eingetragen sind. (Außer $local_recipient_maps ist leer, denn dann sind alle Adressen innerhalb dieser Domains gültig)

virtual alias
Die Adressklasse "virtual alias" hat gar keinen Transportagent, sondern erledigt ausschließlich Weiterleitungen. Die Weiterleitungen können rekursiv erfolgen, am Ende muss immer ein Ziel aus einer anderen Adressklasse stehen. Damit so eine Weiterleitung funktioniert, muss der Domain-Teil der Adresse in $virtual_alias_domains eingetragen sein. Die Weiterleitungen selbst werden in $virtual_alias_maps eingetragen.

virtual mailbox
Um die Adressklasse "virtual mailbox" kümmert sich per default der Transportagent "virtual" (kann in $virtual_transport übersteuert werden). Auch dieser Agent legt E-Mails in Dateien oder Verzeichnissen von Unix-Usern ab, aber man kann diese Adressklasse auch nutzen, um E-Mails an dovecot oder ein ähnliches Programm weiterzuleiten, dazu muss man in $virtual_transport den entsprechenden Transportagent angeben, und auch in master.cf einen entsprechenden Eintag ergänzen. Damit eine E-Mail-Adresse zu dieser Adressklasse gehört, muss ihr Domaintail in der Liste $virtual_mailbox_domains stehen. $virtual_mailbox_maps enthält eine Liste aller gültigen E-Mail-Adressen in dieser Adressklasse. Falls $virtual_transport=virtual wird diese Liste als Tabelle gelesen, wobei in der rechten Spalte die Ablageort stehen.

relay
Braucht man wenn der eigene Mailserver MX-Backup für andere Server ist (was bei mir nicht zutrifft). Der Transportagent steht in $relay_transport, das ist per default "relay" und das ist wiederum ein Klon von smtp. Die Domains, für die mein Server der Backup-Server ist, stehen in $relay_domains (ist bei mir leer). $relay_recipient_maps enthält eine Liste der gültigen Relay-Adressen.

d efault
Das ist die Adressklasse für alle E-Mail-Adressen, deren Domain-Teile in keiner der zuvor genannten Listen steht. "default" ist nur für ausgehende E-Mails zuständig. Der Transportagent steht in $default_transport und ist im Standardfall smtp. Eine Liste mit gültigen Adressen in dieser Adressklasse gibt es nicht, alle Adressen sind gültig.

Aus all diesen Infos folgere ich, dass, wenn ich keine lokalen User als Mailempfänger habe, sämtliche gültigen Empfänger-E-Mail-Adressen in der Adressklasse "virtual mailbox" liegen. Folglich müssen alle Domains dieser Adressen in $virtual_mailbox_domains stehen.
Da ich (wie ich gelernt habe) der MX all dieser Domains bin, müssen alle Domains aber auch in $virtual_alias_domains eingetragen sein. So wie ich das verstanden habe, ist das auch aus einem anderen Grund notwendig. Denn ohne eine Eintragung der Domain in $virtual_alias_domains werden die in $virtual_alias_maps eingetragenen Weiterleitungen nicht durchgeführt.
Allerding darf auch keine Domain zugleich in $virtual_mailbox_domains und $virtual_alias_domains stehen, weil Postfix sonst nicht weiß, zu welcher Adressklasse eine E-Mail-Adresse nun gehört. Und genau dieser Widerspruch bereitet mir Kopfzerbrechen.

Liebe Grüße
Hubert Schölnast