I asked this to the dovecot list to no avail, so will try here too. Please forgive the crosspost.

I have a client running Dovecot-Postfix on Debian Squeeze. I'm using Dovecot from the Squeeze repository.

# dovecot --version

I've implemented a central mail_location and am using one vmail user, as I thought this would be be the best approach for when it came time to implement Shared and Public Mailboxes.

# dovecot -n
# 1.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-xen-686 i686 Debian 6.0.7 ext3
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps pop3s managesieve
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(pop3): *:995
ssl_ca_file: /etc/ssl/certs/RapidSSL_CA_bundle.pem
ssl_cert_file: /etc/ssl/certs/mail.example.com.2013.chain.pem
ssl_key_file: /etc/ssl/private/example.2013.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
mail_max_userip_connections(default): 40
mail_max_userip_connections(imap): 40
mail_max_userip_connections(pop3): 10
mail_max_userip_connections(managesieve): 10
mail_privileged_group: mail
mail_uid: vmail
mail_gid: vmail
mail_location: maildir:/var/spool/dovecot/%d/%u
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_plugins(default): quota imap_quota
mail_plugins(imap): quota imap_quota
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
 type: private
 separator: /
 inbox: yes
 list: yes
 subscriptions: yes
 postmaster_address: postmaster@example.com
 mail_plugins: sieve quota
 log_path: /var/log/dovecot-deliver.log
 info_log_path: /var/log/dovecot-deliver.log
auth default:
 mechanisms: plain login
   driver: ldap
   args: /etc/dovecot/dovecot-ldap.conf
   driver: ldap
   args: /etc/dovecot/dovecot-ldap-userdb.conf
   type: listen
     path: /var/spool/postfix/private/auth
     mode: 432
     user: postfix
     group: postfix
     path: /var/run/dovecot/auth-master
     mode: 384
     user: vmail
     group: vmail
 quota: maildir:User
 quota_rule: *:storage=1200M
 quota_rule2: Deleted Messages:storage=10%%
 quota_rule3: Deleted Items:storage=10%%
 quota_rule4: Trash:storage=10%%
 sieve: /var/spool/sieve/%d/%u/.dovecot.sieve
 sieve_dir: /var/spool/sieve/%d/%u

All of the mail users are LDAP users only (not local UNIX users - not using nsswitch). dovecot-ldap-userdb.conf is a symbolic link to dovecot-ldap.conf

# grep -v '^ *\(#.*\)\?$' /etc/dovecot/dovecot-ldap.conf 
uris = ldaps://mail.example.com/
dn = uid=mail,ou=Services,dc=example,dc=com
dnpass = ******************
tls_require_cert = hard
auth_bind = yes
base = ou=People,dc=example,dc=com
user_attrs = quota=quota_rule=*:storage=%$M
user_filter = (&(objectClass=posixAccount)(mail=%u))
pass_attrs = uid=mail,userPassword=password
pass_filter = (&(objectClass=posixAccount)(mail=%u))

Now, mail addressed to user@example.com and user@EXAMPLE.com correctly gets delivered to the correct mail location of /var/spool/dovecot/example.com/user, but the problem occurs when the user creates their email account in an IMAP client with uppercase characters in their username, e.g. user@exaMPLE.com. This creates a new directory at /var/spool/dovecot/exaMPLE.com/user, which never receives any mail. Is it possible to ignore the case the user enters in their mail client and always land them at the lowercase mail directory? Where would this be done?


You are using a very old version of Dovecot, almost three years out of date. I suggest you upgrade to a newer version, 2.2.5 is current. There have been made countless improvements and fixes from which your setup will surely profit.

That said, you should set auth_username_format = %Lu in dovecot.conf so that Dovecot translates the username to lower case before doing a lookup. This will normalize the usernames to lower case, no matter what the user sets in their mail client.

NB: lower-casing usernames is the default behaviour as of Dovecot 2.1.x.

  • Many thanks. I have traditionally tried to stick with what was approved by Debian. While there were features in 2.x that I wanted to use, I wasn't comfortable with the risk of using an unmaintained package. Is that not a wise approach? – jaydisc Aug 30 '13 at 5:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.