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


Хммм так как я сам неиспользую оракл емаил сервер....
Проблема только в точке после адреса при передачи его майлеру?
как я понял ?

тогда так
вместо
R$+@$+ $#ofcmail $: $1.$2 Oracle eMail passof
-->
R$+<@$+.>$3 $#ofcmail $: $1.$2 Oracle eMail passof

По идее точка должна исчезнуть и адрев с <> тоже правильно имена
то уже канонизированны.
Желаю удачаи.

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