Hello

I'm implementing a new feature in our mail system which uses address
extensions for message delivery to user inbox subfolders.

I've found out that alias expansion folds case not only of user part of
address (before +), but it also folds the address extension (after +).

I've setup a basic Postfix(3.3.1) configuration for the purpose of testing
with the following settings:

local_recipient_maps =
mailbox_transport = smtp:127.0.0.1:2525
recipient_delimiter = +
propagate_unmatched_extensions = canonical,alias


Alias file contains a single line:
john.doe: doe


If I send 2 messages through SMTP, one addressed to
"doe+CamelCase@testhostname", the other to "john.doe+CamelCase@testhostname",
this is what happens:

postfix/smtp[17600]: 43D3D29F15: to=<doe+CamelCase@testhostname>,
relay=127.0.0.1[127.0.0.1]:2525, delay=0.16, delays=0.02/0.02/0.07/0.05,
dsn=2.0.0, status=sent (250 2.0.0 OK: queued as
<4213941.17397.14824888156065723605@localhost.localdomain>)
postfix/smtp[17600]: 952B929F15: to=<doe+camelcase@testhostname>,
orig_to=<john.doe+CamelCase@testhostname>, relay=127.0.0.1[127.0.0.1]:2525,
delay=0.1, delays=0.01/0/0.04/0.05, dsn=2.0.0, status=sent (250 2.0.0 OK:
queued as <4214170.17397.13366994128348457886@localhost.localdomain>)

The first one is delivered correctly into CamelCase mailbox and the other
is delivered to the camelcase mailbox.

I think this is an undesired behavior as the handling of address extensions
for aliased and non-aliased users is different. Aliased users cannot use
uppercase letters in IMAP folder names if they want to allow direct
delivery into them.

I've searched through the documentation for any explanation/solution. It
isn't clear from the docs whether such a folding should be done. From
virtual(5):

The   *propagate_unmatched_extensions
<http://www.postfix.org/postconf.5.html#propagate_unmatched_extensions>*
  parameter  controls  whether  an
       unmatched address extension (*+foo*) is propagated to the result of table
       lookup.

and:

       The search string is folded to lowercase before database lookup. As  of
       Postfix  2.3,  the search string is not case folded with database types
       such as regexp <http://www.postfix.org/regexp_table.5.html>: or
pcre <http://www.postfix.org/pcre_table.5.html>: whose lookup fields
can match both  upper  and
       lower case.


I would expect the "propagate_unmatched_extensions" option to work
consistently and without case folding.

Do you have a different opinion?

Regards
Fedor

Reply via email to