[Dovecot] how to announce shared folders to clients using non-default mail prefix

Tom Lieuallen toml at engr.orst.edu
Fri Jun 8 03:34:29 EEST 2012


We're using dovecot 2.1.3 and I've been doing some testing with 2.1.7. 
We have shared mail (maildir) folders working along with our default 
mbox mailboxes.  Our problem is trying to get this to work in a 
reasonable fashion with our iPhone or iPad mail.app clients.  It's well 
known that they don't honor the subscription list; they show all 
available mail folders and do not collapse trees of folders.  I have 381 
folders in directories under mail.  Normal clients are fine, but this is 
unmanageable in IOS.

What we have been doing is changing the mail prefix for the iPhone to a 
subfolder, then using soft links to point to the most commonly used 
folders we use.  This works, but when one changes the mail prefix, any 
shared folders are not presented.  I'm suspicious that this is a design 
decision.  If there is some way to make it work, I'd be very grateful.

Note the two 'sharedimap' folders listed in the first 'list'.

Note that if I change the prefix for that shared namespace to 
'iphonemail/', it does present my shared folders as well as anything in 
a personal iphonemail directory.  However, 'select' didn't work with the 
personal folders.  My guess is it's mostly due to the difference in mail 
formats between the two (mbox & maildir).  But, it does show that 
somewhere in the code it's checking the mail prefix against namespaces 
and not displaying shared folders in non-default prefixes.  I wish this 
were a configurable option.

thank you

Tom Lieuallen
Oregon State University

. list "" *
* LIST (\Noselect \HasChildren) "/" "foo1"
* LIST (\NoInferiors \UnMarked) "/" "foo1/folder1"
* LIST (\Noselect \HasChildren) "/" "iphonemail"
* LIST (\NoInferiors \Marked) "/" "iphonemail/foo1"
* LIST (\NoInferiors \UnMarked) "/" "Sent"
* LIST (\NoInferiors \UnMarked) "/" "Trash"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\HasNoChildren) "/" "sharedimap/cesupport"
* LIST (\HasNoChildren) "/" "sharedimap/mimesupport"
. OK List completed.
. list "iphonemail/" *
* LIST (\NoInferiors \Marked) "/" "iphonemail/foo1"
. OK List completed.


===============

# 2.1.7: /private/dovecot/etc/dovecot/dovecot.conf
# OS: SunOS 5.10 sun4v
auth_debug = yes
auth_verbose = yes
default_client_limit = 10245
default_process_limit = 5120
first_valid_uid = 100
mail_location = mbox:~/mail:INBOX=/var/mail/%u:INDEX=/a2/imap-index/%u
mail_nfs_storage = yes
mail_plugins = quota acl
namespace {
   inbox = yes
   location =
   prefix =
   separator = /
   type = private
}
namespace {
   hidden = yes
   inbox = no
   list = children
   location = maildir:/a1/dove-shared:INDEX=/a2/imap-index/dove-shared/%u
   prefix = sharedimap/
   separator = /
   type = shared
}
passdb {
   driver = pam
}
passdb {
   args = scheme=CRYPT username_format=%u /private/dovecot/etc/passwd
   driver = passwd-file
}
plugin {
   acl = vfile
   quota = fs:INBOX:mount=/a1
   quota2 = fs:Home quota:mount=%h
}
protocols = imap lmtp
service imap-login {
   inet_listener imaps {
     port = 993
     ssl = yes
   }
   process_min_avail = 16
   service_count = 1
}
service imap {
   process_limit = 2048
}
ssl_ca = </private/ssl/certs/SSL_CA_Bundle.pem
ssl_cert = </private/ssl/certs/mail.crt
ssl_key = </private/ssl/certs/mail.key
userdb {
   driver = passwd
}
userdb {
   args = username_format=%u /private/dovecot/etc/passwd
   driver = passwd-file
}
protocol imap {
   mail_plugins = quota acl imap_quota imap_acl
}
protocol pop3 {
   pop3_uidl_format = %08Xv%08Xu
}



More information about the dovecot mailing list