[exim] Multiple User Mailboxes (Spec 42.7 and FAQ 066)

Top Page
Delete this message
Reply to this message
Author: Jamin W. Collins
Date:  
To: exim-users
Subject: [exim] Multiple User Mailboxes (Spec 42.7 and FAQ 066)
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