Roman Medina-Heigl Hernandez a écrit :
> [snip]
> Any ideas to improve this? I think this could be solved with more mysql
> magic...
> 

let's use these "simplistic" tables (no id/keys... for simplicity):

- a User table, with the following columns
 * user: the user-part of an email address
 * domain: the domain part.


- a DomainAlias table, with the following columns
 * alias: This is a domain name
 * destination: This too is a domain name


now, we set

virtual_alias_maps =
        # user aliases
        proxy:mysql:/etc/postfix/maps/mysql/user_alias
        # domain aliases
        proxy:mysql:/etc/postfix/maps/mysql/domain_alias


user_alias is used for "user" aliases (no wildcard alias). You already
know how to do this so I'll skip it.

domain_alias is used for domain aliasing. The query is

query =
  SELECT
        user
  FROM
        DomainAlias, User
  SELECT
        alias = '%d'
  AND
        User.user = '%u'
  AND
        User.domain = destination

so there are two things:
- we use two maps in virtual_alias_maps. one for users and one for
domains. the latter implements wildcard aliases
- but we only return a result if the "destination" user exists (in the
User table).

is it clear now?






Reply via email to