[Dovecot] Thunderbird and shared mailboxes
I'm setting up shared mailboxes as in http://wiki.dovecot.org/SharedMailboxes/Shared, and have set ACLs as described on that page to share one folder of user A's mailbox with User B.
However, I'm struggling to get Thunderbird for userb@example.com to read the shared folder of usera@example.com. Has anyone done this?
Thunderbird 3.0, Dovecot 1.2.11
Thanks, Keith
On ke, 2010-06-09 at 17:41 +0100, Keith Edmunds wrote:
I'm setting up shared mailboxes as in http://wiki.dovecot.org/SharedMailboxes/Shared, and have set ACLs as described on that page to share one folder of user A's mailbox with User B.
You did it with SETACL command, and you had acl_shared_dict set? A little more details would be helpful..
However, I'm struggling to get Thunderbird for userb@example.com to read the shared folder of usera@example.com. Has anyone done this?
It's easier to test these things by talking IMAP protocol directly. Clients sometimes hide the real problem. http://wiki.dovecot.org/TestInstallation
On ke, 2010-06-09 at 17:41 +0100, Keith Edmunds wrote:
I'm setting up shared mailboxes as in http://wiki.dovecot.org/SharedMailboxes/Shared, and have set ACLs as described on that page to share one folder of user A's mailbox with User B.
You did it with SETACL command, and you had acl_shared_dict set? A little more details would be helpful..
Yes and yes:
[as user 'kae', who wants to share a folder called 'stuff' with user def] 1 login kae kae 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in 2 setacl stuff def rl 2 OK Setacl complete. 3 getacl stuff
- ACL "stuff" "def" lr "kae" lrwstipekxacd 3 OK Getacl completed.
[now as user def] 1 login def def 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in 2 list "" *
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "/" "info"
- LIST (\HasNoChildren) "/" "customers" 2 OK List completed.
Contents of acl_shared_dict: shared/shared-boxes/user/def@dovecot/kae 1 shared/shared-boxes/user/def/kae 1
Does that shed any light?
Thanks, Keith
On to, 2010-06-10 at 13:50 +0100, Keith Edmunds wrote:
2 setacl stuff def rl 2 OK Setacl complete. 3 getacl stuff
- ACL "stuff" "def" lr "kae" lrwstipekxacd 3 OK Getacl completed.
Looks ok.
[now as user def] 1 login def def 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in 2 list "" *
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "/" "info"
- LIST (\HasNoChildren) "/" "customers" 2 OK List completed.
What about if you try to SELECT the mailbox directly?
Contents of acl_shared_dict: shared/shared-boxes/user/def@dovecot/kae 1 shared/shared-boxes/user/def/kae 1
Looks ok. dovecot -n output would help.
To recap: user 'kae' has set an acl sharing his folder 'stuff' with user 'def'.
As kae:
3 getacl stuff
- ACL "stuff" "def" lr "kae" lrwstipekxacd 3 OK Getacl completed.
As user def:
2 list "" *
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "/" "info"
- LIST (\HasNoChildren) "/" "customers" 2 OK List completed.
Timo said:
Looks ok. dovecot -n output would help.
# dovecot -n # 1.2.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.26-2-486 i686 Debian 5.0.4 ext3 log_path: /var/log/dovecot.err log_timestamp: %Y-%m-%d %H:%M:%S disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login mail_location: maildir:/home/imapmail/%u mbox_write_locks: fcntl dotlock mail_plugins: acl imap_acl namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: public separator: / prefix: info/ location: maildir:/home/imapmail/public/info:CONTROL=/home/imapmail/public/info/.%u.control:INDEX=/home/imapmail/public/info/.%u.index list: yes subscriptions: yes namespace: type: public separator: / prefix: customers/ location: maildir:/home/imapmail/public/customers:CONTROL=/home/imapmail/public/customers/.%u.control:INDEX=/home/imapmail/public/customers/.%u.index list: yes subscriptions: yes namespace: type: shared separator: / prefix: shared/%%u/ location: maildir:/home/imapmail/%%u/Maildir:INDEX=~/Maildir/shared/%%u list: children auth default: passdb: driver: pam userdb: driver: static args: uid=imapmail gid=imapmail plugin: acl: vfile acl_shared_dict: file:/var/tmp/shared-mailboxes mail_log_events: delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields: uid box msgid size from subject #
What about if you try to SELECT the mailbox directly?
I'm not sure that I have the syntax exactly correct; however, as user 'def':
2 select shared/kae/stuff 2 NO Invalid mailbox name: shared/kae/stuff 3 select kae/stuff 3 NO Mailbox doesn't exist: kae.stuff
Note: the full path to the mailbox in question is /home/imapmail/kae/.stuff
If I'm using the incorrect syntax, what should it be?
If the syntax is correct, any ideas why I can't select the mailbox?
Thanks, Keith
I'd be grateful for any advice regarding one user sharing a single folder with another user.
Thanks, Keith
To recap: user 'kae' has set an acl sharing his folder 'stuff' with user 'def'.
As kae:
3 getacl stuff
- ACL "stuff" "def" lr "kae" lrwstipekxacd 3 OK Getacl completed.
As user def:
2 list "" *
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\HasNoChildren) "/" "info"
- LIST (\HasNoChildren) "/" "customers" 2 OK List completed.
Timo said:
Looks ok. dovecot -n output would help.
# dovecot -n # 1.2.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.26-2-486 i686 Debian 5.0.4 ext3 log_path: /var/log/dovecot.err log_timestamp: %Y-%m-%d %H:%M:%S disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login mail_location: maildir:/home/imapmail/%u mbox_write_locks: fcntl dotlock mail_plugins: acl imap_acl namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: public separator: / prefix: info/ location: maildir:/home/imapmail/public/info:CONTROL=/home/imapmail/public/info/.%u.control:INDEX=/home/imapmail/public/info/.%u.index list: yes subscriptions: yes namespace: type: public separator: / prefix: customers/ location: maildir:/home/imapmail/public/customers:CONTROL=/home/imapmail/public/customers/.%u.control:INDEX=/home/imapmail/public/customers/.%u.index list: yes subscriptions: yes namespace: type: shared separator: / prefix: shared/%%u/ location: maildir:/home/imapmail/%%u/Maildir:INDEX=~/Maildir/shared/%%u list: children auth default: passdb: driver: pam userdb: driver: static args: uid=imapmail gid=imapmail plugin: acl: vfile acl_shared_dict: file:/var/tmp/shared-mailboxes mail_log_events: delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields: uid box msgid size from subject #
What about if you try to SELECT the mailbox directly?
I'm not sure that I have the syntax exactly correct; however, as user 'def':
2 select shared/kae/stuff 2 NO Invalid mailbox name: shared/kae/stuff 3 select kae/stuff 3 NO Mailbox doesn't exist: kae.stuff
Note: the full path to the mailbox in question is /home/imapmail/kae/.stuff
If I'm using the incorrect syntax, what should it be?
If the syntax is correct, any ideas why I can't select the mailbox?
Thanks, Keith
-- Keith Edmunds
+-------------------------------------------------------------------------+ | Tiger Computing Ltd | Helping businesses make the most of Linux | | "The Linux Specialists" | http://www.tiger-computing.co.uk | +-------------------------------------------------------------------------+
On Thu, 2010-06-24 at 13:06 +0100, Keith Edmunds wrote:
namespace: type: shared separator: / prefix: shared/%%u/ location: maildir:/home/imapmail/%%u/Maildir:INDEX=~/Maildir/shared/%%u list: children
You should have subscriptions=no here. Other than that, it looks ok to me.
2 select shared/kae/stuff 2 NO Invalid mailbox name: shared/kae/stuff
This is correct. Did you look at the log file for errors when trying it?
namespace: type: shared separator: / prefix: shared/%%u/ location: maildir:/home/imapmail/%%u/Maildir:INDEX=~/Maildir/shared/%%u list: children
You should have subscriptions=no here. Other than that, it looks ok to me.
I actually do have "subscriptions=no" there, but dovecot -n doesn't report it.
2 select shared/kae/stuff 2 NO Invalid mailbox name: shared/kae/stuff
This is correct. Did you look at the log file for errors when trying it?
I did have errors relating to the tilde in the INDEX entry above; I've fixed that by changing that line to:
location = maildir:/home/imapmail/%%u/Maildir:INDEX=/home/imapmail/%u/shared/%%u
I've put the full output of 'dovecot -n' at the foot of this mail.
However, I still don't seem to be able to select the shared folder:
1 login def def 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in 2 select shared/kae/stuff 2 NO Mailbox doesn't exist: stuff 3 logout
- BYE Logging out 3 OK Logout completed.
1 login kae kae 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in 2 getacl stuff
- ACL "stuff" "def" lr "kae" lrwstipekxacd 2 OK Getacl completed. 3 logout
- BYE Logging out 3 OK Logout completed.
The only log entries from the above are login/logout messages, no errors.
Timo, very grateful for your continuing help, and hoping we can get this resolved soon. 3 OK Logout completed.
Thanks, Keith
dovecot -n:
# dovecot -n # 1.2.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.26-2-486 i686 Debian 5.0.4 ext3 log_path: /var/log/dovecot.err log_timestamp: %Y-%m-%d %H:%M:%S disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login mail_location: maildir:/home/imapmail/%u mbox_write_locks: fcntl dotlock mail_plugins: acl imap_acl namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: public separator: / prefix: info/ location: maildir:/home/imapmail/public/info:CONTROL=/home/imapmail/public/info/.%u.control:INDEX=/home/imapmail/public/info/.%u.index list: yes subscriptions: yes namespace: type: public separator: / prefix: customers/ location: maildir:/home/imapmail/public/customers:CONTROL=/home/imapmail/public/customers/.%u.control:INDEX=/home/imapmail/public/customers/.%u.index list: yes subscriptions: yes namespace: type: shared separator: / prefix: shared/%%u/ location: maildir:/home/imapmail/%%u/Maildir:INDEX=/home/imapmail/%u/shared/%%u list: children auth default: passdb: driver: pam userdb: driver: static args: uid=imapmail gid=imapmail plugin: acl: vfile acl_shared_dict: file:/var/tmp/shared-mailboxes mail_log_events: delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields: uid box msgid size from subject #
On Tue, 2010-07-06 at 17:13 +0100, Timo Sirainen wrote:
On Tue, 2010-06-29 at 15:39 +0100, Keith Edmunds wrote:
Timo, very grateful for your continuing help, and hoping we can get this resolved soon.
I don't have much ideas. As a test you could try if it happens to work immediately with v2.0..
Oh, and mail_debug=yes might log something useful too.
Oh, and mail_debug=yes might log something useful too.
Excellent advice. Turning on the above revealed a path typo in the namespace definition. All is now working exactly as required.
Timo: thank you very much.
Keith
participants (2)
-
Keith Edmunds
-
Timo Sirainen