Я безрезультатно спросил об этом в списке голубятни, так что попробую и здесь. Прошу простить крестовину.
У меня есть клиент, на котором запущен Dovecot-Postfix на Debian Squeeze. Я использую Dovecot из репозитория Squeeze.
# dovecot --version
1.2.15
Я реализовал центральную mail_location и использую одного пользователя vmail, так как я думал, что это будет лучший подход, когда придет время реализовать общие и общедоступные почтовые ящики.
# 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(default): 127.0.0.1:143
listen(imap): 127.0.0.1:143
listen(pop3): 127.0.0.1:110
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(pop3): *:995
ssl_listen(managesieve):
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_plugins(pop3):
mail_plugins(managesieve):
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
namespace:
type: private
separator: /
inbox: yes
list: yes
subscriptions: yes
lda:
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
passdb:
driver: ldap
args: /etc/dovecot/dovecot-ldap.conf
userdb:
driver: ldap
args: /etc/dovecot/dovecot-ldap-userdb.conf
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 384
user: vmail
group: vmail
plugin:
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
Все пользователи почты являются только пользователями LDAP (не локальными пользователями UNIX - не использующими nsswitch). dovecot-ldap-userdb.conf - это символическая ссылка на 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))
Теперь почта, адресованная на user@example.com и user@EXAMPLE.com, правильно доставляется в правильный адрес электронной почты /var/spool/dovecot/example.com/user, но проблема возникает, когда пользователь создает свою учетную запись электронной почты в клиент IMAP с заглавными буквами в имени пользователя, например user@exaMPLE.com. Это создает новый каталог на /var/spool/dovecot/exaMPLE.com/user, который никогда не получает почту. Можно ли игнорировать регистр, который пользователь вводит в свой почтовый клиент, и всегда помещать его в почтовый каталог в нижнем регистре? Где бы это сделать?
Вы используете очень старую версию Dovecot, устаревшую почти на три года. Предлагаю вам перейти на более новую версию, текущая версия 2.2.5. Было внесено бесчисленное количество улучшений и исправлений, от которых ваша установка наверняка выиграет.
Тем не менее, вы должны установить auth_username_format = %Lu
в dovecot.conf
так что Dovecot переводит имя пользователя в нижний регистр перед выполнением поиска. Это приведет к нормализации имен пользователей в нижнем регистре, независимо от того, что пользователь устанавливает в своем почтовом клиенте.
NB: имена пользователей в нижнем регистре являются поведением по умолчанию, начиная с Dovecot 2.1.x.