>>> Неужели никто не связывал сендмэйл с LDAP?
>> До сих пор не вышло... буду невероятно благодарен, если кто то все
>> же отзовется
> не оно:
> http://www.dovecot.org/list/dovecot/2010-June/049500.html прочитал ВНИМАТЕЛЬНО, несколько раз.
В первой ссылке говорится про то, как сделать deliver локальным доставщиком, а также как запускать от другого пользователя Sendmail и dovecot - это и так сделано, deliver у меня довекотовский, sieve работает...
Вот настройка деливера:
++++++++++++++++++++++
FEATURE(`local_procmail', `/usr/local/libexec/dovecot/deliver',`/usr/local/libexec/dovecot/deliver -d $u')
MODIFY_MAILER_FLAGS(`LOCAL', `-f')
......................................
define(`confLDAP_DEFAULT_SPEC', `-h "localhost" -b "dc=mydomain,dc=ru" -d "cn=dovecot,ou=accounts,dc=mydomain,dc=ru" -MLDAP_AUTH_SIMPLE -P /etc/mail/ldap_pass')dnl
LDAPROUTE_DOMAIN(`mydomain.ru')dnl
FEATURE(`ldap_routing', `null -T<TMPF>', `ldap -1 -T<TMPF> -v mail -k (&(objectclass=posixaccount)(mail=%0))', `passthru')dnl
......................................
MAILER(procmail)
++++++++++++++++++++++
Поверяем:
++++++++++++++++++++++
[root@test2 /etc/mail]# sendmail -bv -d60.1 test_user@mydomain.ru
map_lookup(dequote, test) => NOT FOUND (0)
map_lookup(host, mydomain.ru) => mydomain.ru. (0)
map_lookup(dequote, test_user) => NOT FOUND (0)
map_lookup(ldapmra, test_user@mydomain.ru) => test_user@mydomain.ru (0)
map_lookup(ldapmh, test_user@mydomain.ru) => NOT FOUND (68)
map_lookup(host, mydomain.ru) => mydomain.ru. (0)
map_lookup(dequote, test_user) => NOT FOUND (0)
map_lookup(virtuser, test_user@mydomain.ru) => NOT FOUND (0)
map_lookup(virtuser, @mydomain.ru) => NOT FOUND (0)
test_user@mydomain.ru... User unknown
++++++++++++++++++++++
Теперь интересности:
Если указать в файлике с паролем(ldap_pass) неверный пароль для подключения к ЛДАП каталогу, то:
++++++++++++++++++++++
[root@test2 /etc/mail]# sendmail -bv -d60.1 test_user@mydomain.ru
map_lookup(dequote, test) => NOT FOUND (0)
map_lookup(host, mydomain.ru) => mydomain.ru. (0)
map_lookup(dequote, test_user) => NOT FOUND (0)
ldap_init/ldap_bind failed to localhost in map ldapmra: Invalid credentials
map_lookup(ldapmra, test_user@mydomain.ru) => NOT FOUND (75)
map_lookup(ldapmra, test_user@mydomainb.ru) tempfail: errno=0
map_lookup(ldapmh, test_user@mydomain.ru) => NOT FOUND (68)
map_lookup(virtuser, test_user@mydomain.ru) => NOT FOUND (0)
map_lookup(virtuser, @mydomain.ru) => NOT FOUND (0)
test_user@mydomain.ru... deliverable: mailer local, user test_user
++++++++++++++++++++++
Неправильный пароль результирует в том, что пользователь в LDAP находится таки. Странно...
Если я попытаюсь найти системного пользователя, например, testmail, то получу сообщение, что сообщение может быть доставлено:
[root@test2 /etc/mail]# sendmail -bv -d60.1 testmail
map_lookup(dequote, test) => NOT FOUND (0)
map_lookup(dequote, testmail) => NOT FOUND (0)
testmail... deliverable: mailer local, user testmail
Я полагал, что переключившись на LDAP, deliver и sendmail вообще должен перестать смотреть в passwd database. Пытался решить это через LOCAL_MAILER_FLAGS, указывая, что надо читать LDAP, но не помогло...