Hello, I try to migrate from Courier to Dovecot and i have a trouble with shared folders.
Shared mailbox is visible in list, but i can't subscribe to it.
user - bna@test.sunlink.ru shared folder - mail-rack@test.sunlink.ru
Here is a raw log: LOGIN-AND-FIND-SUBSCRIBED-IN: 2 namespace 3 ENABLE CONDSTORE 4 ID ("name" "Thunderbird" "version" "31.4.0") 5 list (subscribed) "" "INBOX.*" 6 list (subscribed) "" "shared.*" 7 list "" "INBOX" 8 select "INBOX" (CONDSTORE) 9 myrights "INBOX" 10 getacl "INBOX" 11 getquotaroot "INBOX" 12 UID fetch 33:* (FLAGS) 13 IDLE DONE 14 list (subscribed) "" "INBOX.*" 15 list "" "INBOX.%" 16 list "" "INBOX.%.%" 17 list (subscribed) "" "shared.*" 18 list "" "shared.%" 19 list "" "shared.%.%" 20 IDLE DONE 21 list "" "shared.shared/%" 22 list "" "shared.shared/%/%" 23 IDLE DONE 24 list "" "shared.mail-rack.%" 25 list "" "shared.mail-rack.%.%" 26 IDLE DONE 27 close 28 logout
LOGIN-AND-FIND-SUBSCRIBED-OUT: 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE NOTIFY QUOTA ACL RIGHTS=texk] Logged in
- NAMESPACE (("INBOX." ".")) (("shared." ".")) NIL 2 OK Namespace completed.
- ENABLED CONDSTORE 3 OK Enabled.
- ID ("name" "Dovecot") 4 OK ID completed.
- LIST (\Subscribed) "." INBOX.Archives
- LIST (\Subscribed) "." INBOX.Drafts
- LIST (\Subscribed) "." INBOX.Junk
- LIST (\Subscribed) "." INBOX.Sent
- LIST (\Subscribed) "." INBOX.Trash
- LIST (\Subscribed) "." INBOX.INBOX.1
- LIST (\Subscribed) "." INBOX.1 5 OK List completed. 6 OK List completed.
- LIST (\HasChildren) "." INBOX 7 OK List completed.
- FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $Forwarded Junk)
- OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $Forwarded Junk \*)] Flags permitted.
- 24 EXISTS
- 0 RECENT
- OK [UIDVALIDITY 1423308312] UIDs valid
- OK [UIDNEXT 39] Predicted next UID
- OK [HIGHESTMODSEQ 675] Highest 8 OK [READ-WRITE] Select completed (0.000 secs).
- MYRIGHTS INBOX lrwstipekxacd 9 OK Myrights completed.
- ACL INBOX bna@test.sunlink.ru lrwstipekxacd 10 OK Getacl completed.
- QUOTAROOT INBOX "User quota"
- QUOTA "User quota" (STORAGE 79458 512000) 11 OK Getquotaroot completed.
- 24 FETCH (UID 32 FLAGS (\Seen NonJunk)) 12 OK Fetch completed.
- idling 13 OK Idle completed.
- LIST (\Subscribed) "." INBOX.Archives
- LIST (\Subscribed) "." INBOX.Drafts
- LIST (\Subscribed) "." INBOX.Junk
- LIST (\Subscribed) "." INBOX.Sent
- LIST (\Subscribed) "." INBOX.Trash
- LIST (\Subscribed) "." INBOX.INBOX.1
- LIST (\Subscribed) "." INBOX.1 14 OK List completed.
- LIST (\HasNoChildren \UnMarked) "." INBOX.1
- LIST (\HasNoChildren \UnMarked \Sent) "." INBOX.Sent
- LIST (\HasNoChildren \UnMarked \Junk) "." INBOX.Junk
- LIST (\HasNoChildren \UnMarked \Drafts) "." INBOX.Drafts
- LIST (\HasNoChildren \UnMarked) "." INBOX.Archives
- LIST (\HasNoChildren \Trash) "." INBOX.Trash 15 OK List completed.
- LIST (\HasNoChildren \UnMarked) "." INBOX.INBOX.1 16 OK List completed. 17 OK List completed.
- LIST (\HasChildren) "." shared.mail-rack 18 OK List completed.
- LIST (\HasNoChildren \UnMarked) "." shared.mail-rack.Trash 19 OK List completed.
- idling 20 OK Idle completed. 21 OK List completed. 22 OK List completed.
- idling 23 OK Idle completed.
- LIST (\HasNoChildren \UnMarked) "." shared.mail-rack.Trash 24 OK List completed. 25 OK List completed.
- idling 26 OK Idle completed. 27 OK Close completed.
- BYE Logging out 28 OK Logout completed.
SUBSCRIBE-IN: 2 ENABLE CONDSTORE 3 ID ("name" "Thunderbird" "version" "31.4.0") 4 subscribe "shared.mail-rack" 5 list (subscribed) "" "INBOX.*" 6 list (subscribed) "" "shared.*" 7 list "" "INBOX" 8 logout
SUBSCRIBE-OUT: 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE NOTIFY QUOTA ACL RIGHTS=texk] Logged in
- ENABLED CONDSTORE 2 OK Enabled.
- ID ("name" "Dovecot") 3 OK ID completed. 4 NO [CANNOT] This namespace has no subscriptions
- LIST (\Subscribed) "." INBOX.Archives
- LIST (\Subscribed) "." INBOX.Drafts
- LIST (\Subscribed) "." INBOX.Junk
- LIST (\Subscribed) "." INBOX.Sent
- LIST (\Subscribed) "." INBOX.Trash
- LIST (\Subscribed) "." INBOX.INBOX.1
- LIST (\Subscribed) "." INBOX.1 5 OK List completed. 6 OK List completed.
- LIST (\HasChildren) "." INBOX 7 OK List completed.
- BYE Logging out 8 OK Logout completed.
As I understood from documentation if "shared." namespace have "subscription = no" then there shall be a parent namespace to match, before "shared.". But i have inbox namespace with prefix "INBOX."
Where I was mistaken in a configuration?
$ dovecot -n # 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-xen-686 i686 Debian 7.8 xfs auth_mechanisms = plain login auth_verbose = yes dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no first_valid_gid = 8 first_valid_uid = 8 info_log_path = /var/log/dovecot.log lda_mailbox_autocreate = yes listen = 172.27.65.34, 87.244.0.24 log_path = /var/log/dovecot.error.log mail_debug = yes mail_gid = mail mail_location = maildir:/var/virtmail/%d/%n mail_plugins = acl quota mail_uid = mail mailbox_list_index = yes maildir_very_dirty_syncs = yes
namespace { hidden = no ignore_on_failure = yes list = children location = maildir:/var/virtmail/%%d/%%n prefix = shared.%%n. separator = . subscriptions = no type = shared }
namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = INBOX. separator = . }
passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_defaults_from_inbox = yes acl_shared_dict = file:/var/virtmail/%d/shared-mailboxes.db antispam_allow_append_to_spam = no antispam_backend = pipe antispam_pipe_program = /root/sa-learn-pipe.sh antispam_pipe_program_notspam_arg = --ham antispam_pipe_program_spam_arg = --spam antispam_spam = Junk;Spam;SPAM antispam_trash = Trash antispam_unsure = Unsure quota = dict:User quota::proxy::quota quota_grace = 10%% quota_rule = *:storage=300M quota_rule2 = INBOX.Trash:storage=+100M quota_rule3 = INBOX.Sent:storage=+50M quota_rule4 = INBOX.SPAM:ignore quota_rule5 = INBOX.Junk:ignore quota_warning = storage=95%% quota-warning 95 %u sieve = ~/.dovecot.sieve sieve_after = /etc/dovecot/sieve/after sieve_before = /etc/dovecot/sieve/before sieve_dir = ~/sieve } protocols = " imap lmtp" service auth { unix_listener auth-client { mode = 0660 user = Debian-exim } } service dict { unix_listener dict { group = mail mode = 0600 user = mail } } service quota-warning { executable = script /root/quota-warning.sh unix_listener quota-warning { user = mail } } ssl_cert =
/var/log/dovecot.log
Feb 13 18:21:06 imap-login: Info: Login: user=bna@test.sunlink.ru,
method=PLAIN, rip=87.244.6.122, lip=87.244.0.24, mpid=28110,
session=<rYcXyfkOEQBX9AZ6>
Feb 13 18:21:06 script-login: Debug: Added userdb setting:
plugin/quota_rule=*:bytes=500M
Feb 13 18:21:06 imap: Debug: Loading modules from directory:
/usr/lib/dovecot/modules
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib01_acl_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib02_imap_acl_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib10_quota_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib11_imap_quota_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib15_notify_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib20_mail_log_plugin.so
Feb 13 18:21:06 imap: Debug: Module loaded:
/usr/lib/dovecot/modules/lib90_antispam_plugin.so
Feb 13 18:21:06 imap: Debug: Added userdb setting:
plugin/quota_rule=*:bytes=500M
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Effective uid=8,
gid=8, home=/var/virtmail/test.sunlink.ru/bna
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota root: name=User
quota backend=dict args=:proxy::quota
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=* bytes=524288000 messages=0
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Trash bytes=+104857600 messages=0
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Sent bytes=+52428800 messages=0
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.SPAM ignored
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Junk ignored
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota warning:
bytes=498073600 (95%) messages=0 reverse=no command=quota-warning 95
bna@test.sunlink.ru
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Quota grace: root=User
quota bytes=52428800 (10%)
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: dict quota:
user=bna@test.sunlink.ru, uri=proxy::quota, noenforcing=0
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Namespace inbox:
type=private, prefix=INBOX., sep=, inbox=yes, hidden=no, list=yes,
subscriptions=yes location=maildir:/var/virtmail/test.sunlink.ru/bna
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: maildir++:
root=/var/virtmail/test.sunlink.ru/bna, index=, indexpvt=, control=,
inbox=/var/virtmail/test.sunlink.ru/bna, alt=
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: initializing
backend with data: vfile
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: acl username =
bna@test.sunlink.ru
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: owner = 1
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl vfile: Global ACLs
disabled
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Namespace :
type=shared, prefix=shared.%n., sep=., inbox=no, hidden=no,
list=children, subscriptions=no location=maildir:/var/virtmail/%d/%n
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: shared:
root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: initializing
backend with data: vfile
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: acl username =
bna@test.sunlink.ru
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl: owner = 0
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: acl vfile: Global ACLs
disabled
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: Namespace :
type=private, prefix=, sep=, inbox=no, hidden=yes, list=no,
subscriptions=no location=fail::LAYOUT=none
Feb 13 18:21:06 imap(bna@test.sunlink.ru): Debug: none: root=, index=,
indexpvt=, control=, inbox=, alt=
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.Archives/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.Drafts/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.Junk/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.Sent/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.Trash/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.INBOX.1/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/.1/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota root: name=User
quota backend=dict args=:proxy::quota
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=* bytes=524288000 messages=0
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Trash bytes=+104857600 messages=0
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Sent bytes=+52428800 messages=0
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.SPAM ignored
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota rule: root=User
quota mailbox=INBOX.Junk ignored
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota warning:
bytes=498073600 (95%) messages=0 reverse=no command=quota-warning 95
mail-rack@test.sunlink.ru
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Quota grace: root=User
quota bytes=52428800 (10%)
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: dict quota:
user=mail-rack@test.sunlink.ru, uri=proxy::quota, noenforcing=0
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: maildir++:
root=/var/virtmail/test.sunlink.ru/mail-rack, index=, indexpvt=,
control=, inbox=/var/virtmail/test.sunlink.ru/mail-rack, alt=
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: initializing
backend with data: vfile
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: acl username =
mail-rack@test.sunlink.ru
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: owner = 1
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: Global ACLs
disabled
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: maildir++:
root=/var/virtmail/test.sunlink.ru/mail-rack, index=, indexpvt=,
control=, inbox=/var/virtmail/test.sunlink.ru/mail-rack, alt=
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: initializing
backend with data: vfile
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: acl username =
bna@test.sunlink.ru
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl: owner = 0
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: Global ACLs
disabled
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: reading
file /var/virtmail/test.sunlink.ru/mail-rack/dovecot-acl
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Namespace
shared.mail-rack.: Using permissions from
/var/virtmail/test.sunlink.ru/mail-rack: mode=0700 gid=default
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/dovecot-acl not found
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: Namespace INBOX.:
Using permissions from /var/virtmail/test.sunlink.ru/bna: mode=0700
gid=default
Feb 13 18:21:07 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/bna/dovecot-acl not found
Feb 13 18:21:08 imap(bna@test.sunlink.ru): Debug: Namespace shared.:
Using permissions from : mode=0700 gid=default
Feb 13 18:21:08 imap(bna@test.sunlink.ru): Debug: acl vfile: file
/var/virtmail/test.sunlink.ru/mail-rack/.Trash/dovecot-acl not found
Feb 13 18:21:13 imap-login: Info: Login: user=bna@test.sunlink.ru,
method=PLAIN, rip=87.244.6.122, lip=87.244.0.24, mpid=28114,
session=