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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
casperonius
проходил мимо
Сообщения: 5
Зарегистрирован: 2015-04-14 16:03:14

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

Непрочитанное сообщение casperonius » 2015-04-14 17:56:15

Добрый день всем!

Уже пару неделю бьюсь над проблемой, не могу решить, прошу помощи. :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
В голове каша. Подскажите направление, куда копать?
Спасибо!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

Непрочитанное сообщение skeletor » 2015-04-15 10:04:21

Вам нужно что-то типа такого:

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

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

casperonius
проходил мимо
Сообщения: 5
Зарегистрирован: 2015-04-14 16:03:14

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

Непрочитанное сообщение casperonius » 2015-04-15 14:21:43

Низкий тебе поклон!
СПАСИБО ОГРОМНОЕ! =)


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

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

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