[Dovecot] 2 users database on same LDAP with different mail location

Francesco mailinglists at easy-mail.it
Tue Feb 25 12:42:52 UTC 2014


Il 25/02/2014 13:39, list at grootstyr.eu ha scritto:
> On Tue, Feb 25, 2014 at 01:29:37PM +0100, list at grootstyr.eu wrote:
>> On Tue, Feb 25, 2014 at 11:42:33AM +0100, Francesco wrote:
>>> Hello,
>>> i know i know, i'm getting annoying but appearently i always come up
>>> with weird ideas and i cant seem to accomplish such a task.
>>>
>>> the scenario is that i have an LDAP server with a bunch of users.
>>> some of them are in a specific OU, and i'd like to define for all these
>>> users belonging to this OU an alternative mail location/storage.
>>>
>>> in details for all the users i'd like to use maildir storage in a
>>> directory, while for the users belonging to a specific OU i'd like to
>>> use dbox with an alternative storage attached.
>>>
>>> so i created 2 userdb like this:
>>>
>>> userdb {
>>>   driver = ldap
>>>   args = /etc/dovecot/dovecot-ldap-maildir.conf.ext
>>> }
>>>
>>> userdb {
>>>   driver = ldap
>>>   args = /etc/dovecot/dovecot-ldap-dbox.conf.ext
>>> }
>>>
>>> and then defined these 2 args files:
>>> maildir:
>>>
>>> hosts = localhost
>>> dn = CN=ldapadmin,OU=administrators,DC=plutone,DC=local
>>> dnpass = <password>
>>> auth_bind = yes
>>> ldap_version = 3
>>> base = DC=plutone,DC=local
>>> user_attrs = sAMAccountName=home=/var/vmail/%$
>>>
>>> dbox:
>>>
>>> hosts = localhost
>>> dn = CN=ldapadmin,OU=administrators,DC=plutone,DC=local
>>> dnpass = <password>
>>> auth_bind = yes
>>> ldap_version = 3
>>> base = OU=dboxusers,OU=lowpriority,DC=plutone,DC=local
>>> user_attrs = sAMAccountName=home=/var/local_dbox/%$,
>>> =mail=dbox:/var/local_dbox/%$:ALT=/var/iscsi_dbox/%$
>>> user_filter = (&(ObjectClass=person)(mail=%u))
>>>
>>>
>>> yet it doesn't matter how hard i try if i send an email to a user
>>> belonging to the dboxusers OU i still have the user to be addressed to
>>> the maildir storage in /var/vmail
>>>
>>> am i missing something?
>>>
>>> Thanks
>>> Francesco
>> You can use LDAP to search for an alternative mail attribute, and specify a default location using 
>> mail_location. In your example; mail_location = /var/vmail/%u. Then use one LDAP config file to override the 
>> mailbox location if the LDAP database specifies a maildir location.
>>
>> By the way, aren't userdb's searched sequentially? Try switching those userdb's to make the one with the group 
>> lookup go first. LDAP users will always match the userdb without group lookup.
>>
>> 	Matthijs
> An addition to my own comment, put the group lookup userdb first, and add skip = found to the second userdb. 
> This way it will search the group userdb first and if it found the user, so when it is in the group, don't 
> search the second userdb and use the answer from the first userdb.
>
> 	Matthijs

ok.. thank you i'm gonna try this one, do you think the attributes files
are fine?
Francesco


More information about the dovecot mailing list