URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93574
[ Назад ]

Исходное сообщение
"Sendmail и локальные пользователи."

Отправлено tt , 18-Июл-12 13:29 
Привет всем.

Есть сервак с sendmail с десятком системных юзеров, почта для которых кладется в /var/mail/user
Доменное имя используется одно, например example.com Все работает нормально, но естественно если пользователя в системе нет то получаем User Unknown. А вот как бы сделать так, чтобы если системного пользователя нет, то почта уходила на другой сервак?

Попробовал SmartHost но тогда вся почта уходит на него, не взирая на наличие системного юзера.

Спасибо


Содержание

Сообщения в этом обсуждении
"Sendmail и локальные пользователи."
Отправлено ze6ra , 18-Июл-12 15:04 
> Привет всем.
> Есть сервак с sendmail с десятком системных юзеров, почта для которых кладется
> в /var/mail/user
> Доменное имя используется одно, например example.com Все работает нормально, но естественно
> если пользователя в системе нет то получаем User Unknown. А вот
> как бы сделать так, чтобы если системного пользователя нет, то почта
> уходила на другой сервак?
> Попробовал SmartHost но тогда вся почта уходит на него, не взирая на
> наличие системного юзера.
> Спасибо

Попробуйте
define(`LUSER_RELAY', `relay_host')dnl


"Sendmail и локальные пользователи."
Отправлено tt , 18-Июл-12 15:14 
Да вот тоже нашел эту фичу, только проблема в том что 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 host

R< > $+                 $: < $L > $(user $1 $)          look up user
R< $* > $+ <>           $: < > $2                       found; strip $L

Добавил в sendmail.cf перезапустил шлимыло, но все равно пишет User Unknown.
Может не в то место впихнул?
Кстати в local-host-names прописан example.com


"Sendmail и локальные пользователи."
Отправлено ze6ra , 18-Июл-12 23:43 
>[оверквотинг удален]
>        $: < $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.


"Sendmail и локальные пользователи."
Отправлено tt , 20-Июл-12 15:34 
> Место наверное то.
>    При задании макроса  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 - есть.

Что-то не совсем понятно, куда вообще письмо девается.


"Sendmail и локальные пользователи."
Отправлено ze6ra , 23-Июл-12 12:24 
>[оверквотинг удален]
>> Будет выполнел поиск почтовиков для домена 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 локальный. Покажите больше логов.


"Sendmail и локальные пользователи."
Отправлено sTALK_specTrum , 18-Июл-12 18:21 
> Привет всем.
> как бы сделать так, чтобы если системного пользователя нет, то почта
> уходила на другой сервак?

Можно прописать или в aliases или в virtusertable.


"Sendmail и локальные пользователи."
Отправлено tt , 18-Июл-12 22:10 
> Можно прописать или в aliases или в virtusertable.

Извини, не совсем понял, ты имеешь ввиду прописывать каждого пользователя?
Хотелось бы обойтись без этого, т.к. есть системная база с пользователями и не очень удобно всех прописывать еще куда-то.

Подозреваю что это как-то просто должно решаться, но рабочий вариант пока не нашел.


"Sendmail и локальные пользователи."
Отправлено sTALK_specTrum , 20-Июл-12 02:09 
> Извини, не совсем понял, ты имеешь ввиду прописывать каждого пользователя?
> Хотелось бы обойтись без этого, т.к. есть системная база с пользователями и
> не очень удобно всех прописывать еще куда-то.

У тебя размер базы СИСТЕМНЫХ пользователей "over 9000"?  ;)

В virtusertable можно сбацать одной строкой:
@my.domain        %1@another.domain

А насчёт удобно-неудобно - так это уже костыль получается, когда привередливый сервак в почте своего домена ковыряется - это буду, а это не ко мне. Может проще по разным доменам разнести, зависит от постановки задачи.