According to the the Exim Specification docs[1] you should be able to
setup multiple address for a user and allow the user to control these
with their .forward file like so:
userforward:
driver = redirect
check_local_user
file = $home/.forward$local_part_suffix
local_part_suffix = -*
local_part_suffix_optional
allow_filter
This presents a problem if the admin is verifying e-mail addresses
during SMTP receipt due to the use of allow_filter[2]. Because of this,
Exim will attempt to change it's uid and gid to that of the local user
(thanks to check_local_user) and fail[3]. Adding the no_verify option
to this as the FAQ suggests disables the ability to verify the address
during message receipt.
To work around this required an additional router and modification to
what section 42.7 suggested. The end result is something like the
following:
checkforward:
debug_print = "R: checkforward for $local_part@$domain"
driver = accept
check_local_user
require_files = $home/.forward$local_part_suffix
local_part_suffix = -*
local_part_suffix_optional
verify_only
userforward:
debug_print = "R: userforward for $local_part@$domain"
driver = redirect
check_local_user
file = $home/.forward$local_part_suffix
local_part_suffix = -*
local_part_suffix_optional
allow_filter
check_ancestor
no_verify
The first is used solely to check the validity of the address based on
the availability of the appropriate .forward file. The second handles
only the delivery of the address.
I'd be interested to know of anyone getting this to work with address
validation without needing the second router.
[1] -
http://exim.org/exim-html-4.40/doc/html/spec_42.html#SECT42.7
[2] -
http://exim.org/exim-html-4.40/doc/html/spec_22.html#IX1760
[3] -
http://exim.org/exim-html-4.40/doc/html/FAQ_0.html#TOC66
--
Jamin W. Collins
Linux is not The Answer. Yes is the answer. Linux is The Question. - Neo