Страница 1 из 1

Exim + Dovecot + MS AD (email отличается от логина)

Добавлено: 2015-04-14 17:56:15
casperonius
Добрый день всем!

Уже пару неделю бьюсь над проблемой, не могу решить, прошу помощи. :cry:

Есть MS AD, в ней, у некоторых пользователей, логин забит как ivanovav (ivanovav@company.com), а мыло типа ivanov.aleksandr@company.com....

Exim настроен на раскладку почты через LMTP Dovecot'ом. Авторизация в Dovecot и Exim проходит, и если логин совпадает с mailnickname то всё хорошо, всё работает. А для тех, у кого не совпадает Exim пишет в логи следующее:

Код: Выделить всё

2015-04-14 17:12:31 1Yi1ZY-0001Xa-96 ** ivanov.aleksandr@company.com R=local_LDAP_user T=dovecot_lmtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<ivanov.aleksandr@company.com>: 550 5.1.1 <ivanov.aleksandr@company.com> User doesn't exist: ivanov.aleksandr@company.com
Конфиг dovecot-ldap.conf.ext:

Код: Выделить всё

uris = ldap://company.com:3268

# LDAP account
dn = exim@company.com
dnpass = 5TghfE$

# LDAP settings
ldap_version = 3
base = dc=company, dc=com
deref = searching
scope = subtree
auth_bind = yes



 # Password check
 user_filter = (&(objectClass=user)(sAMAccountName=%Lu)) # тут что только не указывал уже


 # Users check
 pass_filter = (&(objectClass=user)(sAMAccountName=%Lu)) # и тут что только не указывал уже

 user_attrs = =uid=vmail, =gid=vmail, home=/mail/mailNickname
 pass_attrs = =uid=vmail, =gid=vmail, home=/mail/mailNickname
В голове каша. Подскажите направление, куда копать?
Спасибо!

Exim + Dovecot + MS AD (email отличается от логина)

Добавлено: 2015-04-15 10:04:21
skeletor
Вам нужно что-то типа такого:

Код: Выделить всё

user_filter = (|(&(objectClass=user)(sAMAccountName=%Lu))(&(objectClass=user)(uid=%u))
То есть, типа условия OR. ("|" в начале условия означает OR). Но нигде в доке я не нашёл вообще никакого упоминания об условии OR для LDAP. Возможно вы что-то нагуглите.

Exim + Dovecot + MS AD (email отличается от логина)

Добавлено: 2015-04-15 14:21:43
casperonius
Низкий тебе поклон!
СПАСИБО ОГРОМНОЕ! =)


не знал про "OR"

Кому интересно, итоговые фильтры выглядят так:

user_filter = (|(&(objectClass=user)(sAMAccountName=%Lu))(&(objectClass=user)(mailNickname=%Lu)))