Virtual Hosts Exim4 on Debian Lenny
March 19, 2010
virtual_hosts directory
In here, create a file for each hostname (for example drumcoder.co.uk). In each file, have a list of email accounts on the left, and local users or email addresses on the right, separated by a colon.
For example:
*:drumcoder coder:me@here.com freddy:fred spamtrap:
The first line sends all emails that otherwise don't match anything in this file to the local user called drumcoder. The second line redirects any emails addressed to coder@domain to . The third line sends any emails addressed to freddy@domain to the local user fred. The final line rejects emails addressed to spamtrap@domain and returns them as undelivered.
exim4.conf.template
Modify the domainlist.local_domains to point at the virtual_hosts directory
domainlist local_domains = @:localhost:dsearch;/etc/exim4/virtual_hosts
Add another router to handle the virtual hosts
##################################################### ### router/350_exim4-config_vdom_aliases ##################################################### vdom_aliases: debug_print = "R: vdom_aliases for $local_part@$domain" driver = redirect allow_defer allow_fail domains = dsearch;/etc/exim4/virtual_hosts data = ${expand:${lookup{$local_part}lsearch{/etc/exim4/virtual_hosts/$domain}}} retry_use_local_part pipe_transport = address_pipe file_transport = address_file vdom_aliases_suffix: debug_print = "R: vdom_aliases_suffix for $local_part@$domain" driver = redirect local_part_suffix = +* local_part_suffix_optional allow_defer allow_fail domains = dsearch;/etc/exim4/virtual_hosts data = ${expand:${lookup{$local_part}lsearch*@{/etc/exim4/virtual_hosts/$domain}}} retry_use_local_part pipe_transport = address_pipe file_transport = address_file no_more ##################################################### ### end router/350_exim4-config_vdom_aliases #####################################################
The first one of these deals with the virtual hosts.
The second deals with aliases. For example, given a user set up in the alias file as drum, this router will send any email to drum+anything@domain to this user. This allows the user to have as many email addresses as they need without additional setup.