LINUX.ORG.RU

Так значит спецы по Sendmail сюда не заглядывают


0

0

Здравствуйте Гуру! Ведь если Вы это читаете - значит Вы гуру :) Проблема касается прикрутки sendmail к трахнутому Oracle Email Server 5.2 . Значит так - Oracle Email Server требует ( по документации ) чтобы адреса эл.почты были в следующем виде: <username>.<domain>.ofcmail@<domain> Т.е. фактически мейлер должен получать адрес типа <username>.<domain> Тогда он соображает, что такой-то <username> находится в таком-то <domain> и действует соответствующим образом. Это достигается следующим образом: в sendmail.cf (по документации Oracle Email Server ) прописывается мейлер ofcmail в конце файла, а в правиле подстановки адресов номер 0 после строки # resolve fake top level domains by forwarding to other hosts прописывается следующая фигня: R$+.ofcmail $#ofcmail $: $1 Oracle eMail passof Т.е. часть адреса до .ofcmail ( помните <username>.<domain>.ofcmail@<domain> ) становиться первой лексемой и передается как имя ползователя мейлеру ofcmail. Например такой адрес: user.foo.com.ofcmail@foo.com пройдя через правило 0 приобретает вид: user.foo.com и передается как имя получателя мейлеру ofcmail. Ну, а дальше дело техники: Oracle Email Server отрезает все до первой точки и считает, что это имя юзера, а все остальное домен. Если такого юзера на локальной машине нет, то Oracle Email Server ставит это письмо в соответствующую очередь на машину в домене foo.com . Т.е. сколько доменов в Вашей системе - столько и очередей. По одной очереди на один домен. Ну, а чтобы слать почту во внешний мир пишется обычный адрес типа xxx@foo.com и sendmail работает с ним по обычной схеме. Так вот, понятно что адреса типа <username>.<domain>.ofcmail@<domain> использовать совсем не хочется. Этого я добился прописав в правиле 0 вместо предложеной строки: R$+.ofcmail $#ofcmail $: $1 Oracle eMail passof следующую строку: R$+@$+ $#ofcmail $: $1.$2 Oracle eMail passof Т.е. вся почта передается Oracle Email Server с адресом в виде: <username>.<domain> как того и требует Oracle Email Server . При этом надо отключить правило 96, которое вызывается из правила 3 и ставит точку в конце адреса, чтобы получилось полностью определенное имя, как того требует DNS. Но при этом пропадает возможность слать почту во внешний мир. Вот тут собственно и задается вопрос: Как заставить sendmail передавать мейлеру ofcmail адреса в соответствующем виде только если они относятся к корневому домену, например, ora. А все остальные адреса, не содержащие домен ora, обрабатывал по обычной схеме. Вариант с aliases не подходит - т.к. в этом случае прийдется заносить туда всех юзеров из домена ora, а их несколько тысяч. Мне представляется решение следующим образом: Sendmail, при анализе адреса, если находит домен ora в адресе, то вызывает один набор правил, если же домен ora в адресе не содержится, то вызывается сдандартный набор правил подстановки. Только как это прописать в sendmail.cf?

Благодарю за внимание, мой email: selivanovd@mail.ru


Re: Так значит спецы по Sendmail сюда не заглядывают

А не пробовали поэкспериментировать с /etc/mail/mailertable и virtusertable.

qwe ★★★ ()

Re: Так значит спецы по Sendmail сюда не заглядывают

Благодарю за участите, как-то из головы вылетело. Попробую, но сейчас, так навскидку, по-моему не поможет. Сделаю - расскажу

Danil ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.