
Why is mail being rejected with No Mailbox found due to MiXed CaSe incoming e-mail?
***********************************************************************************

If you are using a newer and standard compliant MTA to deliver mail to
Cyrus IMAP's LMTP agent you may run into a problem where mail will be
bounced and not delivered with errors like this in your maillog:

   Feb 29 10:01:02 myhost lmtpunix[12345]: append_check() of 'MyDomain.tld!user.MyUser' failed (Mailbox does not exist)

This is due to LMTP adhering to the RFC standards and the MTA adhering
to the RFC standards of preserving the case in the e-mail address. so
User@MyDomain.tld is not the same as user@mydomain.tld. And this
causes issues if with users who alter the case of their e-mail address
when signing up for mailing lists, or sending e-mail.

However, all is not lost there is a solution. Cyrus IMAP has an option
that can be added into the imapd.conf:

   lmtp_downcase_rcpt: true

Inserting that into your imapd.conf(5) and restarting cyrus imap will
cause cyrus to "downcase" the e-mail address up to the recipient
delimiter of +. The result will be this:

   User@MyDomain.tld -> user@mydomain.tld
   user@mydomain.tld -> user@mydomain.tld
   User+PostFolder@MyDomain.tld -> user+PostFolder@MyDomain.tld

Someone verify that the domain will actually be downcased when a + is
used

Note that this option first appeared in Cyrus IMAP 2.1.14.
