====== Per-domain lookup of aliases ====== ''router/350_local_virtual_domains'' virtual_domains: debug_print = "R: virtual domains for $local_part@$domain" driver = redirect allow_fail allow_defer domains = dsearch;CONFDIR/virtual qualify_preserve_domain data = ${lookup {$local_part} lsearch {CONFDIR/virtual/$domain}} #no_more There is now on standard alias file for each domain in ''CONFDIR/virtual/$domain''. With no_more disabled there is a fallback to /etc/aliases. ====== per-domain configuration with directories ====== each virtual domain has a file named CONFDIR/virtual//aliases. This allows for different configuration options like message size or spam handling options on a per-domain basis: ''350_local-config-virtual-users'' # 350_local-config-virtual-users ################################# # This router takes care of all domains configured in # /etc/exim4/virtual/DOMAIN/ # it expects an aliases file in this directory and returns a list # of local users. virtual_users: debug_print = "R: virtual_users for $local_part@$domain" driver = redirect allow_defer allow_fail # get the domains this router is responsible for domains = dsearch;CONFDIR/virtual # resolve aliases from this file data = ${expand:${lookup{$local_part}lsearch*@{CONFDIR/virtual/$domain/aliases}}} # do not try to "fully qualify" an email address -- just take it as it is qualify_preserve_domain retry_use_local_part # this router is authoritative for this domain - stop after here no_more