[Postfixbuch-users] @Aliasdomain -> @Domain

Thomas -Balu- Walter list+postfixbuch-users at b-a-l-u.de
Di Nov 25 22:05:15 CET 2008


Hallo Kai,

On Tue, Nov 25, 2008 at 07:50:23PM +0100, Kai Fürstenberg wrote:
> > Existiert %u _nicht_ in der Tabelle, gibt's auch keinen Wert zurück, 
> > ergo: Mail-Adresse existiert nicht.
> > 
> > Aber bei 'WHERE domainaliases.name="%d"' wird wohl immer was 
> > zurückkommen, weil die Domain ja wohl in der Tabelle domainaliases 
> > drinsteht.
> 
> Eine kleine Beispielabfrage:
> Du hast zwei Tabellen domain_aliases und users
> domain_aliases: (welche Domain wird in welche umgeschrieben)
> real            alias
> realdoma.in     aliasdoma.in
> 
> users: (welche user existieren)
> email                   test
> user at realdoma.in        12345
> 
> das Feld `test` ist nur ein Dummy
> 
> Die Abfrage lautet dann:
> SELECT CONCAT( '%u', '@', (
>    SELECT `real`
>    FROM domain_aliases
>    WHERE `alias` = '%d'
> ))
> FROM users
> WHERE CONCAT( '%u', '@', (
>    SELECT `real`
>    FROM domain_aliases
>    WHERE `alias` = '%d'
> ))
> IN (
>    SELECT email
>    FROM users
> )
> LIMIT 1;

Ok, dann muesste auch das folgende gehen:

SELECT email FROM users
WHERE email=CONCAT( '%u', '@', (
    SELECT `real`
    FROM domain_aliases
    WHERE `alias` = '%d'
))

Jetzt koennte aber immer noch der Fall sein, dass user at real.domain kein
lokales Postfach, sondern eine Weiterleitung ist.

Ich muesste also auch noch schauen, ob eine Weiterleitung existiert. Und
selbst das koennte dann wieder eine Weiterleitung sein, usw.

Soweit ich das address rewriting verstanden habe, macht cleanup das so
lange weiter, bis es keinen virtual_alias mehr gefunden hat oder
das Ergebnis der Anfrage entspricht (email=email).

Wie soll ich das denn in SQL abbilden?

Auf einer alten Installation (mit courier statt dovecot) benutze ich
einfach die Wildcard-Version @alias -> @real. Selbst wenn dadurch die
Empfaengerpruefung abgeschaltet ist und das System ein boeses
Backscatter-System ist, werden die Mails am Ende des Prozesses nicht in
nicht existierende Postfaecher geschrieben.

Suchen wir hier am falschen Ende? Liegt mein Problem nicht eher beim
virtual delivery agent? Schliesslich ist der Schuld daran, dass die
Mails am Ende der Kette ueberhaupt ausgeliefert werden, oder nicht?

     Balu



Mehr Informationen über die Mailingliste Postfixbuch-users