Правило для Sendmail
Добавлено: 2011-09-16 15:40:49
Добрый день, уважаемые!
Пост адресован тем, кто копается в сендмыле и умеет писать правила. Прошу не рекомендовать мне exim. Я очень устал от подобных советов.
Итак, задача состоит в том, что подсказать сендмылу проверять пользователей на их наличие в LDAP каталоге. У меня виртуальные учетки, которые я храню в LDAP, там же и хэшированные пароли. POP3 и SMTP авторизация происходит также через LDAP.
В связи с хранением учеток в LDAP, а не в passwd базе возникла проблема приема всех писем, где обозначен мой домен:
Т.е. сендмыл принимает письмо, а наличие получателя проверяется уже на стадии локальной доставки. Если пользователь не обнаруживается, то письмо отсылается постмастеру.
В связи с этим предполагаю, что надо написать что то вроде:
Ключи в строке с LDAP я специально взял в кавычки, потому что не уверен, что эти ключи используются для работы с LDAP (см. доку: http://www.opennet.ru/docs/RUS/sendmail ... html#toc59), либо нужны дополнительные ключи
Вопрос в том, как мне правильно дописать правило? Может кто-нибудь помочь?
Пост адресован тем, кто копается в сендмыле и умеет писать правила. Прошу не рекомендовать мне exim. Я очень устал от подобных советов.
Итак, задача состоит в том, что подсказать сендмылу проверять пользователей на их наличие в LDAP каталоге. У меня виртуальные учетки, которые я храню в LDAP, там же и хэшированные пароли. POP3 и SMTP авторизация происходит также через LDAP.
В связи с хранением учеток в LDAP, а не в passwd базе возникла проблема приема всех писем, где обозначен мой домен:
Код: Выделить всё
non.existent.user@domain.ruВ связи с этим предполагаю, что надо написать что то вроде:
Код: Выделить всё
LOCAL_CONFIG
Kldap user "-m" "-a"@LOCALUSER
Kalias implicit -m -a@LOCALUSER /etc/mail/aliases
Klocal sequence alias passwd
LOCAL_RULESETS
SLocal_check_rcpt
R$* <$+@$=w> $: $>CheckLocal $2
SCheckLocal
R$+ $: $(local $1 $)
R$+@LOCALUSER $@ OK
R$* $#error $@ 4.1.8 $: "450 Unknown user " $1 Вопрос в том, как мне правильно дописать правило? Может кто-нибудь помочь?