I've begun testing "plus addressing" to support the delivery of email
such as "user+topic@???" to a user-created IMAP folder:
/var/mail/user/Maildir/.topic/new/
Here's the config:
local_router:
driver = accept
local_part_suffix = +*
local_part_suffix_optional
check_local_user
router_home_directory = "/var/mail/$local_part"
transport_home_directory = "/var/mail/$local_part"
transport = local_transport
local_transport:
driver = appendfile
create_directory = false
maildir_format = true
...
directory = /var/mail/$local_part/Maildir${if exists{/var/
mail/$local_part/Maildir/.${substr_1:$local_part_suffix}}{/.$
{substr_1:$local_part_suffix}}{}}
It delivers to the "topic" Maildir only if the user has already
created it. Otherwise, it's delivered to their top-level Maildir.
However, I've hit a snag with the case-(in)sensitive nature of
addressing. Despite the RFC's, users are accustomed to the fact that
"user@???", "User@???" and "USER@???" will be
delivered to the same "user". Some systems and web-forms even
lowercase addresses. However, a message addressed to "user
+topic@???" doesn't match a directory named "Topic" on an ext3
filesystem.
Does anyone have a suggestion to tell Exim how to deliver to "Topic",
even if the $local_part_suffix is "topic"? We realize one solution
is to force all IMAP folders to be lower-case, but would prefer to
explore other options.
Thanks!
Rich