Use the name field of the mailboxes for authentication in dovecot beside of the email address
Example:
password_query = SELECT password FROM mail_user WHERE email = '%u' or name = '%u' AND disable%Ls = 'n' user_query = SELECT email AS user, maildir AS home, CONCAT('*:storage=', quota , 'B') AS quota_rule FROM mail_user WHERE email = '%u' or name = '%u' AND disable%Ls = 'n'
But this might require to add a unique constraint.