[Dovecot] Shared mailboxes basics

Thomas Hummel hummel at pasteur.fr
Thu Mar 18 18:50:44 EET 2010


Hello Timo,

I'm trying to set up shared mailboxes with dovecot-1.2.11/Maildir. I previsouly
used public namespaces with 1.1+ to somehow implement them but I'm looking at
the real ones now.  I've read the Wiki but I'm still confused or not 100% sure
about the following (basic) points :

1. Namespaces prefixes

My understanding is that a namespace prefix is just an escape mechanism for the
client to access the mailboxes this namespace holds. So the real location is
_only_ defined by the "location" directive, independently of what the prefix
is. So, for example, If you've got :


  prefix="foo/bar/"
  location=maildir:/some/folder/%u

mailboxes are physically in /some/folder/%u, not in /foo/bar/some/folder/%u or something

am I correct ?

2. Other Users mailboxes

RFC234 states that shared mailboxes (which they call "Other Users" mailboxes)
are "mailboxes from the Personal Namespaces of other users."

Dovecot's Wiki takes as an example :

  # User's private mail location.
  mail_location = maildir:~/Maildir

  # You need to create also a private namespace:
  namespace private {
    separator = /
    prefix = 
    #location defaults to mail_location.
    inbox = yes
  }

  namespace shared {
    separator = /
    prefix = shared/%%u/
    location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
    subscriptions = no
    list = children
  }

and states :

  "This creates a shared/ namespace under which each user's mailboxes are."

My understanding is that

  # User's private mail location.
  mail_location = maildir:~/Maildir

and

  location = maildir:%%h/Maildir

implies that mailboxes in both the private and the shared/ namespace are
physically in the same location (under the "$HOME/Maildir" directory of the
user who shares his mailbox) . Am I correct ? 

I tried the following set up :

namespace private {                                                         
   separator = /
   location = maildir:/courriel/boites/%u:CONTROL=/courriel/meta/%u:INDEX=/var/dovecot-test/indexes/%1u/%u
   inbox = yes
   hidden = no
   list = yes
   subscriptions = yes
}

namespace shared {
   separator = /
   prefix = "#shared/%%u/"
   location = maildir:/courriel/boites/%%u:INDEX=/var/dovecot-test/indexes/%1u/%u/shared/%%u
   subscriptions = no
   list = yes # will try children later
}

the user doveimap has the following mailboxes :

# pwd
/courriel/boites
# ls -l doveimap
total 64
drwx------  5 doveimap  Invites  4096 Oct 23 13:38 .Trash
drwxr-xr-x  5 doveimap  Invites  4096 Oct 27 17:00 .sous
drwxr-xr-x  5 doveimap  Invites  4096 Oct 27 17:00 .sous.arbo
drwxr-xr-x  5 doveimap  Invites  4096 Oct 27 17:00 .sous.arbo.rescence
drwx------  5 doveimap  Invites  4096 Oct 23 13:43 .testcopy
drwx------  2 doveimap  Invites  4096 Mar 15 17:08 cur
drwx------  2 doveimap  Invites  4096 Mar 15 17:07 new
drwx------  2 doveimap  Invites  4096 Mar 15 17:07 tmp


I can perform for instance :

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot test ready.
x login doveimap xxxxxxxx
x 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
1 setacl INBOX dovepop rl
1 OK Setacl complete.

But isn't a client like Thunderbird (3.0.3) supposed to 

  . show me the #shared (even if no one shares mailboxes to me) "folder" (because of list = yes )?

  . let me share, let's say the .sous.arbo mailbox ? If yes, how ? Or should I first pre-set some acl files ???

For now, it says : "This is a personnal mail folder. It is not shared."

Thanks

-- 
Thomas Hummel 	    | Institut Pasteur
<hummel at pasteur.fr> | Pôle informatique - systèmes et réseau


More information about the dovecot mailing list