[Postfixbuch-users] virtual_alias und catch-all
Christian Boltz
postfixbuch at cboltz.de
Fr Mai 21 00:38:44 CEST 2010
Hallo zusammen,
Am Mittwoch, 19. Mai 2010 schrieb Stefan Förster:
> Hier liest doch Christian Boltz (sp?) mit, der macht doch
> Postfixadmin und hat sich das doch garantiert schon alles mal
> überlegt.
Naja, ehrlich gesagt ist die Unterstützung für die Alias-Domains ein
"Zuliefer-Produkt" und wir mussten nur noch den Patch einspielen ;-)
Nichts desto trotz: es funktioniert und es werden auch nur Mails
angenommen, für die es auf der Zieldomain einen gültigen Empfänger gibt.
Die SQL-Abfrage ist über zwei maps verteilt - die erste für "einzelne"
Empfänger, die zweite für Catchalls.
Beides in einer Map würde AFAIK relativ schwierig, weil die Catchall-
Query auch für existierende Mailboxen anspringen würde und dann alles
zusätzlich beim Catchall ankäme. Durch die Trennung der Queries greift
die Postfix-Abfragereihenfolge (erst komplette Adresse, wenn nichts
gefunden wird Suche nach einem Catchall) und alles funktioniert wie es
soll ;-)
Und die Queries sind...
virtual_mailbox_domains =
proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_alias_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
mysql_virtual_alias_domain_maps.cf:
query = SELECT goto FROM alias,alias_domain WHERE
alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@',
alias_domain.target_domain) AND alias.active = 1 AND
alias_domain.active='1'
mysql_virtual_alias_domain_catchall_maps.cf:
query = SELECT goto FROM alias,alias_domain WHERE
alias_domain.alias_domain = '%d' and alias.address = CONCAT('@',
alias_domain.target_domain) AND alias.active = 1 AND
alias_domain.active='1'
mysql_virtual_alias_domain_mailbox_maps.cf:
query = SELECT maildir FROM mailbox,alias_domain WHERE
alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u',
'@', alias_domain.target_domain) AND mailbox.active = 1 AND
alias_domain.active='1'
Die Queries für "normale" Aliase spare ich mir an dieser Stelle. Bei
Bedarf empfehle ich einen Blick in POSTFIX_CONF.txt aus der
Postfixadmin-Doku - von dort stammen auch die Queries oben.
Übrigens: ich bastle gerade an Postfixadmin 2.3.1. Das ist im
Wesentlichen ein Bugfix-Release für 2.3. Einzige optische Änderung wird
das Anzeigen der Alias-Ziele bei den Mailboxen (das wurde gefühlte
tausend Mal gewünscht ;-)
Falls jemand vorab testen will: svn co
https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/branches/postfixadmin-2.3
und sich über eine ganze Ladung Bugfixes freuen ;-)
Gruß
Christian Boltz
--
Zeitreisen vermeide ich immer, sollen irgendwie ungesund sein.
[Helga Fischer in suse-linux]
Mehr Informationen über die Mailingliste Postfixbuch-users