[Postfixbuch-users] virtual_alias und catch-all
Uwe Driessen
driessen at fblan.de
Fr Mai 21 01:31:21 CEST 2010
On Behalf Of Uwe Driessen
> On Behalf Of Christian Boltz
> > 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 ;-)
>
> Wie wäre es mit SELECT IF like that
>
> SELECT IF((
> SELECT alias.address 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' LIMIT 1)>0,
das könnte auch einfach ein
SELECT IF((SELECT COUNT(alias.address) 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')>0,
> (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' ),
> (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'));
>
>
> Ich habs nicht probiert da ich das über statische Hashfiles erledige und auch die
> databases nicht kenne.
>
> Grob gesagt schaut das Select if ob es ein Ergebnis für das erste select gibt dann holt
> er
> das Ergebnis mit dem 2. Select gibt es kein Ergebnis wird das Alternative Select
> ausgeführt.
>
> Also gibt es eine vollständige Mailadresse dann holt er die gibt e die nicht und es gibt
> ein catchall dann wird die aus der Datenbank gelesen.
>
> Musst evtl. noch ein wenig feintuning am statement machen aber dann kann das über einen
> zugriff auf die Database erledigt werden.
>
>
>
> Mit freundlichen Grüßen
>
> Drießen
>
> --
> Software & Computer
> Uwe Drießen
> Lembergstraße 33
> 67824 Feilbingert
> Tel.: +49 06708 / 660045 Fax: +49 06708 / 661397
Mehr Informationen über die Mailingliste Postfixbuch-users