[Dovecot] Shared namespace, separator, username and dots.
Hi folks,
I run a legacy mailserver that i had replaced courier-imap for dovecot 1.2. Everything is fine except for shared namespace. Maildir structure has been created using dot '.' as folder separator. It happens that all our users are created as name.surname as default. So when I want to select a shared folder, MUA end up with the following IMAP command:
select shared.jhon.doe.folder.subfolder
Obviously I took ages to figure why it won't work since it takes 'doe' as a folder and not a username part. When sharing a folder from 'sales' user, for example, it works fine. What do you suggest to make shared folders work for all without rebuilding hundreds of maildirs to change folder separator from '.' to '/'?
Thanks for any hint.
# 1.2.9: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-52-server x86_64 Ubuntu 10.04.4 LTS log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap imaps managesieve ssl_listen: * disable_plaintext_auth: no verbose_ssl: yes login_dir: /var/run/dovecot/login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(managesieve): /usr/lib/dovecot/managesieve-login login_process_per_connection: no login_max_processes_count: 1024 max_mail_processes: 1024 mail_max_userip_connections(default): 20 mail_max_userip_connections(imap): 20 mail_max_userip_connections(managesieve): 10 first_valid_gid: 0 mail_privileged_group: mail mail_location: maildir:~/Maildir:INDEX=/var/cache/dovecot/%n fsync_disable: yes maildir_very_dirty_syncs: yes mbox_write_locks: fcntl dotlock mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): quota imap_quota acl imap_acl mail_plugins(imap): quota imap_quota acl imap_acl mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve namespace: type: private separator: . inbox: yes list: yes subscriptions: yes namespace: type: shared separator: . prefix: shared.%%u. location: maildir:%%h/Maildir:INDEX=%u/Maildir/shared/%%u list: children subscriptions: yes lda: postmaster_address: postmaster@a1.ind.br mail_plugins: quota sieve acl quota_full_tempfail: yes auth_socket_path: /var/run/dovecot/auth-master fsync_disable: no auth default: mechanisms: plain login master_user_separator: * passdb: driver: pam args: session=yes blocking=yes dovecot passdb: driver: passwd-file args: /etc/dovecot/passwd.masterusers pass: yes master: yes userdb: driver: nss args: service=ldap blocking=yes socket: type: listen client: path: /var/spool/postfix/private/dovecot mode: 436 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 438 plugin: sieve: ~/.dovecot.sieve acl: vfile acl_shared_dict: proxy::acl dict: acl: mysql:/etc/dovecot/acl-dict-sql.conf
-- *Marcio Merlone* TI - Administrador de redes
*A1 Engenharia - Unidade Corporativa* Fone: +55 41 3616-3797 Cel: +55 41 9689-0036
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 01.11.2013 17:26, schrieb Marcio Merlone:
Hi folks,
I run a legacy mailserver that i had replaced courier-imap for dovecot 1.2. Everything is fine except for shared namespace. Maildir structure has been created using dot '.' as folder separator. It happens that all our users are created as name.surname as default. So when I want to select a shared folder, MUA end up with the following IMAP command:
select shared.jhon.doe.folder.subfolder
Obviously I took ages to figure why it won't work since it takes 'doe' as a folder and not a username part. When sharing a folder from 'sales' user, for example, it works fine. What do you suggest to make shared folders work for all without rebuilding hundreds of maildirs to change folder separator from '.' to '/'?
Thanks for any hint.
# 1.2.9: /etc/dovecot/dovecot.conf
thats simply to old to give good advice, upgrade to a recent version
however perhaps read http://wiki.dovecot.org/Plugins/Listescape
# OS: Linux 2.6.32-52-server x86_64 Ubuntu 10.04.4 LTS log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap imaps managesieve ssl_listen: * disable_plaintext_auth: no verbose_ssl: yes login_dir: /var/run/dovecot/login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(managesieve): /usr/lib/dovecot/managesieve-login login_process_per_connection: no login_max_processes_count: 1024 max_mail_processes: 1024 mail_max_userip_connections(default): 20 mail_max_userip_connections(imap): 20 mail_max_userip_connections(managesieve): 10 first_valid_gid: 0 mail_privileged_group: mail mail_location: maildir:~/Maildir:INDEX=/var/cache/dovecot/%n fsync_disable: yes maildir_very_dirty_syncs: yes mbox_write_locks: fcntl dotlock mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): quota imap_quota acl imap_acl mail_plugins(imap): quota imap_quota acl imap_acl mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve namespace: type: private separator: . inbox: yes list: yes subscriptions: yes namespace: type: shared separator: . prefix: shared.%%u. location: maildir:%%h/Maildir:INDEX=%u/Maildir/shared/%%u list: children subscriptions: yes lda: postmaster_address: postmaster@a1.ind.br mail_plugins: quota sieve acl quota_full_tempfail: yes auth_socket_path: /var/run/dovecot/auth-master fsync_disable: no auth default: mechanisms: plain login master_user_separator: * passdb: driver: pam args: session=yes blocking=yes dovecot passdb: driver: passwd-file args: /etc/dovecot/passwd.masterusers pass: yes master: yes userdb: driver: nss args: service=ldap blocking=yes socket: type: listen client: path: /var/spool/postfix/private/dovecot mode: 436 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 438 plugin: sieve: ~/.dovecot.sieve acl: vfile acl_shared_dict: proxy::acl dict: acl: mysql:/etc/dovecot/acl-dict-sql.conf
Best Regards MfG Robert Schetterer
[*] sys4 AG
http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Axel von der Ohe, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJSc+ueAAoJEP8jBObu0LlEWz0H/j0Wij9fqr5Aj5N3fa/mR2TC 62hOl//R2QuSLmBz4WSPz2athWmY/VHF8MVfN0FBehuzZQwK1+i8bUZgKCDu4v1P kWikdxJp+wV2jZeAFvOn6NcfsFwLIHW4yDTRS5CbguAM+ECYwkp9JqW/oZ2onA/2 rRCERoxd263SLkuuXe1VU0zUMwXkGAf88d3+wzTzjAcbIx6iQn1TwEg+1wckFndS IdFwsDdDumNTWFNWHsgDNYlrMOBkcQCgrehhUNCl6c8O3hm4r/eRZzR2ljTmsmYi QfJG8ZIuMa1c15Uh3zzATCkmWQofH+CVcTOPQJIgrwJyFqGCnILtjhks0w2SaDQ= =JQTg -----END PGP SIGNATURE-----
On 1.11.2013, at 18.26, Marcio Merlone <marcio.merlone@a1.ind.br> wrote:
I run a legacy mailserver that i had replaced courier-imap for dovecot 1.2. Everything is fine except for shared namespace. Maildir structure has been created using dot '.' as folder separator. It happens that all our users are created as name.surname as default. So when I want to select a shared folder, MUA end up with the following IMAP command:
select shared.jhon.doe.folder.subfolder
Obviously I took ages to figure why it won't work since it takes 'doe' as a folder and not a username part. When sharing a folder from 'sales' user, for example, it works fine. What do you suggest to make shared folders work for all without rebuilding hundreds of maildirs to change folder separator from '.' to '/‘?
The only other solution would be to translate the username to not contain dots, so for example the mailbox name would become shared.john_doe.folder.subfolder. But this can’t currently be done only for shared mailboxes, you’d have to do it globally with e.g.:
auth_username_translate = ._
This would affect %u and %n in your settings also, so some paths would change.
participants (3)
-
Marcio Merlone
-
Robert Schetterer
-
Timo Sirainen