[Dovecot] Shared Mailboxes with VirtualUsers and mail_location retrieved from ldap
mailing lists
listas.correo at yahoo.es
Fri Sep 9 13:49:18 EEST 2011
(I'm sorry for breaking the thread with each mail)
On 09/09/2011 10:04 AM, Jan-Frode Myklebust wrote:
> On Fri, Sep 09, 2011 at 08:18:40AM +0100, mailing lists wrote:
>>
>> and how to I might configure dovecot to use the mail directory as a subdirectory of the home directory?
>>
>> this way all lookups for home (with %%h fetched from ldap) will return the correct locationand mail will be in (i.e.) ~/mailSubDir
>>
>> is this configuration possible?
>
> In the main dovecot.conf:
>
> mail_location = maildir:~/mailSubDir
>
> In the ldap-config:
>
> user_attrs = homeFilter=home
and which is the value for the location directive in namespace declaration ??
namespace {
list = children
location = maildir:%%h/mailSubDir:INDEX=~/mailSubDIr/shared/%%u
prefix = shared.%%u.
separator = .
subscriptions = no
type = shared
}
with the above conf. no shared folders are seen by tests users and afaik %%h is retrieved from ldap.
this is that I had done until now:
# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
. login user001 secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAME
. create INBOX.docs-user001
. OK Create completed.
. setacl INBOX.docs-user001 user002 lr
. OK Setacl complete.
. logout
* BYE Logging out
. OK Logout completed.
Connection closed by foreign host.
# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
. login user002 secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAME
. create INBOX.docs-user002
. OK Create completed.
. setacl INBOX.docs-user002 user001 lr
. OK Setacl complete.
. logout
* BYE Logging out
. OK Logout completed.
Connection closed by foreign host.
# cat /var/maildir/shared-mailboxes
shared/shared-boxes/user/user002/user001
1
shared/shared-boxes/user/user002/user002
1
shared/shared-boxes/user/user001/user001
1
shared/shared-boxes/user/user001/user002
1
# cat /var/maildir/vol04/4/46/user001/.docs-user001/dovecot-acl
user=user002 lr
# cat /var/maildir/vol05/4/40/user002/.docs-user002/dovecot-acl
user=user001 lr
# telnet localhost 143
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
. login user001 secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk] Logged in
. namespace
* NAMESPACE (("INBOX." ".")) (("shared." ".")) NIL
. OK Namespace completed.
. list "shared." "*"
. OK List completed.
/--------------/
# grep ^[^#] /etc/dovecot/dovecot-ldap.conf.ext
uris = ldap://ldap.example.com
dn = cn=testuser,dc=example,dc=com
dnpass = secret
sasl_bind = no
tls = no
auth_bind = yes
ldap_version = 3
base = dc=example,dc=com
deref = never
scope = subtree
user_attrs = mailbox=mail=maildir:/var/maildir/%$,homeFilter=home
user_filter = (&(objectClass=CourierMailAccount)(uid=%u))
pass_filter = (&(objectClass=CourierMailAccount)(uid=%u))
# dovecot -n
# 2.0.14: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.34.7-0.7-xen x86_64 openSUSE 11.3 (x86_64)
auth_debug = yes
auth_debug_passwords = yes
auth_verbose = yes
auth_verbose_passwords = plain
base_dir = /var/run/dovecot/
disable_plaintext_auth = no
mail_debug = yes
mail_fsync = always
mail_gid = 5000
mail_location = maildir:~/mailSubDir
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = acl
mail_uid = 5000
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date
mmap_disable = yes
namespace {
inbox = yes
location =
prefix = INBOX.
separator = .
}
namespace {
list = children
location = maildir:%%h/mailSubDir:INDEX=~/mailSubDir/shared/%%u
prefix = shared.%%u.
separator = .
subscriptions = no
type = shared
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
acl = vfile
acl_shared_dict = file:/var/maildir/shared-mailboxes
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
protocols = imap lmtp
service lmtp {
inet_listener lmtp {
port = 24
}
unix_listener lmtp {
user = vmail
}
}
ssl = no
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = acl
}
protocol lda {
mail_plugins = acl
}
protocol imap {
mail_max_userip_connections = 100
mail_plugins = acl imap_acl autocreate
}
More information about the dovecot
mailing list