[Postfixbuch-users] virtual_alias und catch-all

Stefan Förster cite at incertum.net
Mi Mai 19 22:36:24 CEST 2010


* Thomas Walter <list+postfixbuch-users at b-a-l-u.de>:
> SELECT email FROM mailusers WHERE email=
>         (SELECT CONCAT('%u', '@', domains.name)
> 	FROM domainaliases, domains
> 	WHERE domain_id=domains.id
> 	AND domainaliases.name="%d")
> UNION SELECT destination FROM mailaliases WHERE email=
>         (SELECT CONCAT('%u', '@', domains.name)
> 	FROM domainaliases, domains
> 	WHERE domain_id=domains.id
> 	AND domainaliases.name="%d")
> 
> Kennt hier einer MySQL gut genug, um mir sagen zu können, wie ich
> die beiden - identischen - Unterabfragen zusammenfassen kann - oder
> ob ich das überhaupt muss?

Ich hab mir gerade extra deswegen ein MySQL installiert. Da man Aliase
für einzelne Adressen nicht braucht, wenn man sowieso eine
SQL-Datenbank hat (da zeigt eine andere Kombination aus Localpart und
Domain halt eben auf die selbe Mailbox) wäre das untenstehende nur für
ein 1:1-Mapping brauchbar:

CREATE DATABASE mailtest;
USE mailtest;
CREATE TABLE virtual_mailbox_maps (id INTEGER, localpart VARCHAR(20), domain_id INTEGER);
CREATE TABLE virtual_domain_maps(id INTEGER, domainname VARCHAR(20));
CREATE TABLE virtual_alias_domains(id INTEGER, domainname VARCHAR(20), target_name VARCHAR(20));
INSERT INTO virtual_mailbox_maps values(0, 'cite', 0);
INSERT INTO virtual_domain_maps values(0, 'incertum.net');
INSERT INTO virtual_alias_domains values(0, 'billigmail.org', 'incertum.net');

Und als Map in Postfix dann:

SELECT 1 FROM
        virtual_mailbox_maps vmm JOIN
        virtual_domain_maps  vdm
WHERE
        vmm.domain_id = vdm.id AND
        vmm.localpart = '%u' AND
        (vdm.domainname = '%d' OR
        EXISTS
                (SELECT 1 FROM
                                virtual_alias_domains vad
                 WHERE
                        vad.target_name = vdm.domainname AND
                        vad.domainname = '%d'
                )
        )
;

Das matcht halt dann auf cite at incertum.net und cite at billigmail.org,
aber eben nicht auf michnix at billigmail.org. Und ohne Indices kann man
das sowieso knicken.

Hier liest doch Christian Boltz (sp?) mit, der macht doch Postfixadmin
und hat sich das doch garantiert schon alles mal überlegt.


Stefan



Mehr Informationen über die Mailingliste Postfixbuch-users