Thank you for this hint, but no, that does not work.

Does Dovecot really use this user_filter when postfix passes mail using the dovecot-lda command?

I now tried it with

    user_filter = (&(objectClass=qmailUser)(|(uid=%u)(mail=%u)))

and when I search with this filter in LDAP directly (using the recipients e-mail address as %u) it returns the wanted user.

I also ensured, postfix passes the e-mail address as argument by playing around with master.cf, and it does. At the moment the dovecot line looks as follows:

    dovecot      unix   -        n      n       -       -   pipe
flags=DRhu user=mail-data:mail-data argv=/usr/lib/dovecot/dovecot-lda -a ${recipient}

Dovecot still tells me that it does not find the home directory for the user.


Benjamin


On 06/08/2016 10:45 PM, Wolfgang Rosenauer wrote:
On Wed, Jun 8, 2016 at 10:13 AM, Benjamin <[email protected]> wrote:


My dovecot-ldap configuration looks quite simple:

  hosts = 192.168.0.1,192.168.0.2
  dn = cn=mailadmin,dc=example,dc=com
  dnpass = foo
  auth_bind = yes
  ldap_version = 3
  base = ou=users,dc=example,dc=com
  user_attrs = mailMessageStore=home
  user_filter = (&(objectClass=qmailUser)(uid=%u))
  pass_filter = (&(objectClass=qmailUser)(uid=%u))

I think dovecot does not know that the username is not the e-mail address,
but how can I tell him?

Furthermore we have alternative addresses here, so for example there may
be an e-mail address [email protected] owned by foo-example.com who has
[email protected] as primary address.


You need user_filter and pass_filter to recognize also the email addresses
IMHO.

Mine look like:
pass_filter = (&(objectClass=suseMailRecipient)(|(alias=%n)(uid=%n)))
user_filter = (&(objectClass=suseMailRecipient)(|(alias=%n)(uid=%n)))

You have to adapt to your own ldap attributes and use the correct variable
(%n) to match your usecase. My users can login (and receive mails) via all
of their aliases, primary address (part of the alias set) or their username.

HTH,
Wolfgang

Reply via email to