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

Правило для Sendmail

Добавлено: 2011-09-16 15:40:49
mr. brightside
Добрый день, уважаемые!

Пост адресован тем, кто копается в сендмыле и умеет писать правила. Прошу не рекомендовать мне 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 
Ключи в строке с LDAP я специально взял в кавычки, потому что не уверен, что эти ключи используются для работы с LDAP (см. доку: http://www.opennet.ru/docs/RUS/sendmail ... html#toc59), либо нужны дополнительные ключи

Вопрос в том, как мне правильно дописать правило? Может кто-нибудь помочь?

Re: Правило для Sendmail

Добавлено: 2011-09-19 0:16:08
ASY
> В связи с хранением учеток в LDAP, а не в passwd базе возникла проблема приема всех писем, где обозначен мой домен:

А если с другой стороны подойти ? со стороны pam_ldap, например ? Это одна "другая сторона". Ещё один вариант зависит от того, кто mail storage. Если это, вдруг, Cyrus-IMAP, то у него есть smmapd, а Sendmail имеет поддержку socket map так называемых. Он можеть просто спросить у Cyrus-IMAP и всякие LDAP будут ему по барабану.