В общем, случилось странное, не могу понять в чем дело:
Есть Sendmail+Dovecot. Dovecot работает как pop3/imap-сервер. Он же является деливером для sendmail.
Зафигачил LDAP-каталог для создания базы виртуальных пользователей. Dovecot настроил - все супер.
Следующий шаг - это заставить Sendmail смотреть в эту же базу и находить конечных пользователей. Тут то я и отхватил грабли.
Куски конфига сендмыла:
Код: Выделить всё
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)
Пересобираю/перезапускаю sendmail. Пробую найти пользователя:
Код: Выделить всё
[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
Код: Выделить всё
define(`confLDAP_DEFAULT_SPEC', `-h "localhost" -b "dc=mydomain,dc=ru" -d "cn=vertigo,dc=mydomain,dc=ru" -MLDAP_AUTH_SIMPLE -P /etc/mail/ldap_pass')dnl
Код: Выделить всё
[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
Если я верну все обратно, на учетку cn=dovecot,ou=accounts,dc=mydomain,dc=ru, и попытаюсь найти системного пользователя, например, 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

У кого есть идеи? Может, я где то что то неправильно прописал? Неверно использую фильтр? Или еще что то? Помогите пожалуйста

Конфиги выкинуть?
Спасибо!