Привет всем.Есть сервак с sendmail с десятком системных юзеров, почта для которых кладется в /var/mail/user
Доменное имя используется одно, например example.com Все работает нормально, но естественно если пользователя в системе нет то получаем User Unknown. А вот как бы сделать так, чтобы если системного пользователя нет, то почта уходила на другой сервак?Попробовал SmartHost но тогда вся почта уходит на него, не взирая на наличие системного юзера.
Спасибо
> Привет всем.
> Есть сервак с sendmail с десятком системных юзеров, почта для которых кладется
> в /var/mail/user
> Доменное имя используется одно, например example.com Все работает нормально, но естественно
> если пользователя в системе нет то получаем User Unknown. А вот
> как бы сделать так, чтобы если системного пользователя нет, то почта
> уходила на другой сервак?
> Попробовал SmartHost но тогда вся почта уходит на него, не взирая на
> наличие системного юзера.
> СпасибоПопробуйте
define(`LUSER_RELAY', `relay_host')dnl
Да вот тоже нашел эту фичу, только проблема в том что sendmail мне достался в наследство, и у меня мет .mc файлов, есть только sendmail.cfСудя по всему в нем это должно выглядеть вот так:
# place to which unknown users should be forwarded
Kuser user -m -a<>
DLrelay.example.comи далее в Ruleset 5
# send unrecognized local users to a relay hostR< > $+ $: < $L > $(user $1 $) look up user
R< $* > $+ <> $: < > $2 found; strip $LДобавил в sendmail.cf перезапустил шлимыло, но все равно пишет User Unknown.
Может не в то место впихнул?
Кстати в local-host-names прописан example.com
>[оверквотинг удален]
> $: < $L >
> $(user $1 $)
> look up user
> R< $* > $+ <>
> $: < > $2
>
> found; strip $L
> Добавил в sendmail.cf перезапустил шлимыло, но все равно пишет User Unknown.
> Может не в то место впихнул?
> Кстати в local-host-names прописан example.comМесто наверное то.
При задании макроса LUSER_RELAY и получении почты для несуществующего локального пользователя sendmail подставляет <relay_host> как доменную часть к имени пользователя и пытается сделать релэй на получившейся адрес.
Если задать define(`LUSER_RELAY', `relay.example.com') то при получении сообщения для несуществующего пользователя pupkin, сендмаил перешлёт его на pupkin@relay.example.com. Будет выполнел поиск почтовиков для домена relay.example.com и попытка доставки для пользователя. Тоесть у pupkin должен быть ящик в домене relay.example.com.
> Место наверное то.
> При задании макроса LUSER_RELAY и получении почты для
> несуществующего локального пользователя sendmail подставляет <relay_host> как доменную
> часть к имени пользователя и пытается сделать релэй на получившейся адрес.
> Если задать define(`LUSER_RELAY', `relay.example.com') то при получении сообщения для
> несуществующего пользователя pupkin, сендмаил перешлёт его на pupkin@relay.example.com.
> Будет выполнел поиск почтовиков для домена relay.example.com и попытка доставки для
> пользователя. Тоесть у pupkin должен быть ящик в домене relay.example.com.Спасибо за разъяснение.
Но все равно не уходит на relay.example.com
В логах выглядит так:Jul 20 15:13:21 host sendmail[7161]: q6KBDLex007160: to=<user1@example.com>, ctladdr=<user2@example.com> (10420/10420), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30639, dsn=2.0.0, stat=Sent
При этом user1 - в системных пользователях нет, а user2 - есть.
Что-то не совсем понятно, куда вообще письмо девается.
>[оверквотинг удален]
>> Будет выполнел поиск почтовиков для домена relay.example.com и попытка доставки для
>> пользователя. Тоесть у pupkin должен быть ящик в домене relay.example.com.
> Спасибо за разъяснение.
> Но все равно не уходит на relay.example.com
> В логах выглядит так:
> Jul 20 15:13:21 host sendmail[7161]: q6KBDLex007160: to=<user1@example.com>, ctladdr=<user2@example.com>
> (10420/10420), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30639, dsn=2.0.0,
> stat=Sent
> При этом user1 - в системных пользователях нет, а user2 - есть.
> Что-то не совсем понятно, куда вообще письмо девается.А Sendmail как-то нашел что user1 локальный. Покажите больше логов.
> Привет всем.
> как бы сделать так, чтобы если системного пользователя нет, то почта
> уходила на другой сервак?Можно прописать или в aliases или в virtusertable.
> Можно прописать или в aliases или в virtusertable.Извини, не совсем понял, ты имеешь ввиду прописывать каждого пользователя?
Хотелось бы обойтись без этого, т.к. есть системная база с пользователями и не очень удобно всех прописывать еще куда-то.Подозреваю что это как-то просто должно решаться, но рабочий вариант пока не нашел.
> Извини, не совсем понял, ты имеешь ввиду прописывать каждого пользователя?
> Хотелось бы обойтись без этого, т.к. есть системная база с пользователями и
> не очень удобно всех прописывать еще куда-то.У тебя размер базы СИСТЕМНЫХ пользователей "over 9000"? ;)
В virtusertable можно сбацать одной строкой:
@my.domain %1@another.domainА насчёт удобно-неудобно - так это уже костыль получается, когда привередливый сервак в почте своего домена ковыряется - это буду, а это не ко мне. Может проще по разным доменам разнести, зависит от постановки задачи.