To solve a similer problem, I put the following:
virtual:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/exim/$domain}}
user = mail
file_transport = address_file
pipe_transport = address_pipe
in my exim/configure file (near where it was processing /etc/aliases).
Then, for each domain, I have a private alias file which I can then use to
redirect the someone@ and the another@ people for each of the virtual
domains. Not quite as 'simple' as having it all in one file
I guess you could do something similer to:
virtual:
driver = redirect
allow_fail
allow_defer
data = $(lookup($local_part@$domain}}lsearch{/etc/virtusertable}}
user = mail
file_transport = address_file
pipe_transport = address_pipe
[...]
> I'm trying to set up Exim to redirect mail from virtual email addresses
> so that, say, someone@??? forwarded mail to the user
> "rdavis". The problem I have is that the destination user is not
> always the same as the $local_part of the email address. I have a file
> called /etc/virtusertable which has the mapping in the format:
>
> someone@???: rdavis
> another@???: shoskins
> [...]