На главную | Поиск
Вы находитесь в Хранилище файлов Белорусской цифровой библиотеки

Сергей Вакуленко. Пример sendmail.cf на русском

########### # Макросы # ########### # Версия конфигурации sendmail. В данном случае # Copyright (C) 1992-1994 Сергей Вакуленко, . DVvak/1.9 # Ссылки на макросы имеют вид $X. Макросы a-z используются системой, # A-Z оставлены для пользователя. # Следующие макросы определены внутри sendmail: # a - дата сообщения в формате RFC 822 # b - текущая дата в формате RFC 822 # c - счетчик зацикливания (hop count) # d - текущая дата в формате Unix # f - адрес отправителя (from) # g - адрес отправителя относительно получателя # h - хост получателя # i - идентификатор очереди # k - UUCP-шное имя данного хоста # m - необработанный адрес получателя # p - номер процесса sendmail # r - используемый протокол # s - хост отправителя # t - численное представление текущего времени # u - имя пользователя получателя # v - номер версии sendmail # w - имя данного хоста (hostname) # x - полное имя отправителя # y - имя управляющего терминала данного процесса (basename) # z - домашний каталог получателя # Не все из них могут быть определены, для проверки # используется условное выражение вида "$?X текст1 $| текст2 $.". # Приглашение для SMTP. De$j $v$?V/$V$. Sendmail is ready at $b # "Официальное" имя домена для данной машины. # Определяется автоматически. Dj$w # Формат строки "From_". DlFrom $g $d # Имя почтового демона для возврата ошибок маршрутизации. DnMAILER-DAEMON # Список "операторов" в адресах. Do.:%@!^=/[] # Формат адреса отправителя. Dq$g$?x ($x)$. ############### # Классы имен # ############### # Имеют вид: # CXимя1 имя2... # FXфайл # В этом файле находится список всех доменных имен данной машины. Fw/etc/mail/myhostnames # Класс разделителей, запрещенных в имени домена. CB! % @ : ^ ######################### # Составление заголовка # ######################### # Заголовки (в соответствии с RFC 822) должны идти # в следующем порядке: "Return-Path", "Received", # "Date", "From", "Subject", "Sender", "To", "Cc". # # Формат поля Received: # ["from" domain] ; кто передал # ["by" domain] ; кто принял # ["via" atom] ; среда передачи # *("with" atom) ; протокол связи # ["id" msg-id] ; receiver msg id # ["for" addr-spec] ; initial form # ";" date-time ; time received # # Некоторые поля заголовка имеет смысл добавлять только для # определенных мэйлеров, управляя соответствующими флагами мэйлера, # пример: P - добавить поле Return-Path, H?P?Return-Path: <$g> # Поля "Date", "From", "Message-Id" добавляем принудительно, если их нет. HReceived: $?sfrom $s $.by $j$?r with $r$. id $i; ($v$?V/$V$.) $b HDate: $a HFrom: $q HMessage-Id: <$t.$i@$j> ################################ # "Благонадежные" пользователи # ################################ # Следующим господам мы верим и разрешаем # подменять адрес From: посредством флага -f. Troot daemon uucp ########################### # Определение старшинства # ########################### # Письма со следующими значениями поля Precedence: # будут доставляться тем быстрее, чем больше соответствующее # значение станшинства. Если старшинство меньше 0, # сообщений об ошибках не будет. # По умолчанию письма имеют старшинство 0. #Pbulk=-60 #Pfirst-class=0 #Pjunk=-100 #Pspecial-delivery=100 #################### # Установка флагов # #################### # Флаг 'r' - время ожидания ввода при работе по SMTP. # Дело в том, что при работе по SMTP в глобальной сети # бывают довольно большие задержки. # Обычно - два часа, хотя это и противоречит # традиционным протоколам. # По умолчанию не ограничено. Or2h # Флаг 'T' - время ожидания доставки, обычно три дня. # После этого письмо возвращается назад. OT3d # Флаг 'Y' - нужно ли ветвиться (fork) перед обработкой # очередного письма из очереди. При этом можно сэкономить # на оперативной памяти, т.к. родительский процесс не будет # расти по мере обработки очереди. Зато теряется возможность # отслеживать недостижимые хосты. # По умолчанию выключено (не ветвиться). #OY # Флаги 'y', 'z' и 'Z' - управление приоритетом сообщений. # Приоритет вычисляется по формуле: # приоритет = объем - (класс * z) + (тираж * y) + (попытка * Z) # Здесь 'объем' - размер сообжения в байтах, # 'класс' - класс сообщения (см. команды 'P'), # 'тираж' - количество адресатов- получателей сообщения, # 'попытка' - номер попытки установления связи (0, 1...). # Чем ниже приоритет, тем быстрее будет доставлено сообщение. # По умолчанию y=1000, z=1800, Z=9000. #Oy1000 #Oz1800 #OZ9000 # Флаги 'x', 'q' и 'X' - ограничение загрузки процессора. # Сообщение не обрабатывается, а остается в очереди, # в случае, если загрузка процессора превышает x и # выполняется следующее условие: # q # приоритет > ---------------- # загрузка - x + 1 # Если загрузка процессора превышает X, sendmail # перестает обрабатывать входящие SMTP-соединения. # По умолчанию x=8, q=10000, X=12. #Ox8 #Oq10000 #OX12 # Флаг 'd' - режим обработки сообщения. # Варианты: interactive - синхронная доставка (по умолчанию), # background - асинхронная доставка (фоновым процессом), # queue - отложенная доставка (занесение в очередь). Odbackground # Флаг 'L' - уровень диагностики, по умолчанию 9. #OL9 # Флаги 'u' и 'g' - идентификаторы пользователя и группы, # от имени которых происходит запуск мэйлеров. # По умолчанию u=1, g=1. #Ou1 #Og1 # Флаг 'D' - перестраивать базу данных aliases.{pag,dir} # автоматически по мере обновления файла aliases. # По умолчанию выключено. #OD # Флаг 'A' - имя базы данных синонимов. # По умолчанию - ./aliases. OA/etc/mail/aliases # Флаг 'Q' - имя каталога очереди сообщений. # По умолчанию - ./mqueue. OQ/var/spool/mqueue # Флаг 'H' - имя help-файла для SMTP. # По умолчанию - ./sendmail.hf. OH/usr/share/misc/sendmail.hf # Флаг 'S' - имя файла для записи статистики. # По умолчанию - ./sendmail.st. OS/var/log/sendmail.st # Флаг 'B' - символ для заполнения пустых полей в адресах. # Все незащищенные пробелы в адресах заменяются этим символом. # По умолчанию - пробел. #OB. # Флаг 'F' - режим доступа для создаваемых файлов. # По умолчанию - 0644. OF0600 # Флаг 'a' - время ожидания готовности базы aliases.{pag,dir} # в минутах (поиск записи @:@). # По умолчанию - не проверять готовность базы. # Обычно ставят 5 минут. Oa5 # Флаг 'o' - обрабатывать заголовки в "старом" формате, # т.е. адреса разделяются пробелами. В исходящих заголовках # адреса всегда разделяются запятыми. # По умолчанию выключено. Oo # Флаг 's' - "супернадежность", сохранять письмо в очереди # даже в случае немедленной (синхронной) доставки. # По умолчанию выключено. Os # Флаг 'I' - всегда опрашивать name-сервер (BIND), не доверять файлу /etc/hosts. # Необходимо, если /etc/hosts заведомо неполон или требуется обрабатывать # MX-записи. Если выключить, то сначала будет опрашиваться name-сервер, # а при отлупе будем жить по /etc/hosts. # По умолчанию выключено. #OI # Флаг 'c' - если мэйлер помечен как медленный (expensive), # не вызывать его немедленно, а отложить задание в очередь. # По умолчанию выключено. Oc # Флаг 'e' - режим обработки ошибок. Возможные варианты: # print - печать сообщений об ошибках (по умолчанию), # quiet - никаких сообщений, только код ответа, # mail - вернуть письмо с сообщением, # write - печать сообщения на терминал пользователя или письмом, # если пользователя нет в данный момент, # exit - вернуть письмо с сообщением и нулевой код ответа. #Oeprint # Флаг 'f' - сохранять строки "From_". По умолчанию выключено. Of # Флаг 'i' - игнорировать строки, содержащие только точку. # По умолчанию выключено. #Oi # Флаг 'm' - "себе тоже". Слать письма автору сообщения, # если его адрес присутствует в списках рассылки. # По умолчанию выключено. Om # Флаг 'v' - режим трассировки. По умолчанию выключен. #Ov # Флаг 'K' - загрузка дополнительной базы данных. # Формат: KXfile. База данных file открывается под именем X. # База aliases всегда открыта с именем @. # Загружаем базу маршрутизации под именем R. # Для IDA sendmail: #OKR/etc/mail/routes # Для sendmail 8.5: KR hash /etc/mail/routes ########### # Мэйлеры # ########### # Синтаксис определения мэйлера: # Mимя, Path=путь, Argv=аргументы, Eol=конец-строки, Maxsize=макс-размер, # Flags=флаги, Sender=правило-отпр, Recipient=правило-получ, # Linelimit=макс-длина-строки # Path задает полный путь команды, например, /bin/mail, # или один из частных случаев: # [IPC] или [TCP] - SMTP сеанс с удаленным мэйлером, # [LPC] (local person communication) - SMTP на стандартный ввод/вывод, # для отладки. Не для чайников. :-) # Предопределенные флаги: # C - если в адресах получателей нет '@', приписывать им домен отправителя # E - преобразовывать строки From_ в >From # e - "медленный" мэйлер, вызывать только при обработке очереди (асинхронно) # f - нужно добавлять флаг "-f from", если от root # h - не преобразовывать домен в маленькие буквы # I - этот мэйлер - SMTP соединение с другим sendmail # l - локальный мэйлер (доставка конечному адресату) # L - ограничивать длину строки в соответствии с RFC821 # m - возможна посылка нескольким адресатам за один вызов # n - не нужно добавлять строку "From_" в начало сообщения # p - указывать обратный путь в MAIL FROM: # r - то же, что и -f, но -r # S - можно запускать мэйлер от root # s - удалять кавычки " из адресов # u - не преобразовывать в имени пользователя большие буквы в маленькие # U - выдавать строку "From_" с добавкой "remote from " в конце # X - к каждой строке, начинающейся с точки, приписывать еще одну точку # Локальная доставка пользователям на данной машине. Mlocal, Path=/usr/libexec/mail.local, Argv=mail -r $g $u, Flags=lsmn, Sender=11/10, Recipient=12 # Выполнение программ на локальной машине (для фильтров). Mprog, Path=/bin/sh, Argv=sh -c $u, Flags=lse, Sender=11/10, Recipient=12 # Доставка по SMTP. Mtcp, Path=[IPC], Argv=IPC $h, Eol=\r\n, Flags=umeXC, Linelimit=990, Sender=11/10, Recipient=12 # Доставка по UUCP. Muucp, Path=/usr/bin/uux, Argv=uux - -z -r $h!rmail ($u), Flags=Uupm, Maxsize=1000000, Sender=11/10, Recipient=12 # Доставка по UUCP в банговой нотации. Muucpb, Path=/usr/bin/uux, Argv=uux - -z -r $h!rmail ($u), Flags=Uupm, Maxsize=1000000, Sender=11, Recipient=13 ########################## # Правила преобразования # ########################## # Имеется пять основных (зарезервированных) правил: # 1 - обработка адреса отправителя, # 2 - обработка адреса получателя, # 3 - предварительная обработка, # 4 - заключительная обработка, # 0 - маршрутизация. # Адрес локального отправителя (пользователя) обрабатывается # по схеме 3 -> 1 -> 4. # Адрес удаленного отправителя обрабатывается по схеме 3 -> 1 -> X -> 4, # где X - номер правила, указанный в поле Sender соответствующего мэйлера. # Адрес получателя обрабатывается по схеме 3 -> 2 -> Y -> 4, # где Y - номер правила, указанный в поле Recipient соответствующего мэйлера. # Выбор мэйлера происходит по схеме 3 -> 0. # Если определен флаг '/', то при обработке адресов заголовков # (в отличие от конвертов) будут вместо правил 1 и 2 применяться # правила 5 и 6 соответственно. # Команда S# задает номер набора правил, в диапазоне 0..29. # Команда R определяет очередное правило: # Rлевая-часть правая-часть комментарий # Левая и правая части разделяются табуляциями. # В левой части допустимы следующие символы: # $* - ноль и более термов # $+ - один и более терм # $- - ровно один терм # $=x - непустая последовательность термов из класса X # $~x - непустая последовательность термов, не принадлежащих классу X # $%D - непустая последовательность термов-ключей из DBM-файла D # $^D - непустая последовательность термов, не входящих в DBM-файл D # Метасимволы правой части: # $1 $2 $2 и т.д. - строки, соответствующие метасимволам левой части # $&X - текущее содержимое макро X # $[ имя $: умолч $] - канонизация имени (запрос к name-серверу, BIND) # $(D ключ $@ арг $: умолч $) - поиск в DBM-файле # $>7 - запуск набора правил # $#мэйлер - выбор мэйлера, только для набора 0 # $@хост - выбор хоста, только для набора 0 # $:адрес - выбор адреса, только для набора 0 # В начале правой части метасимвол $@ означает возврат из текущего # набора правил (аналог return), метасимвол $: означает # переход к следующему правилу (аналог break). # Правила 1, 2, 5, 6 - пустые, чтобы не было проблем с sendmail версии 5. #------------------------------ # Правилo 3: канонизация адреса #------------------------------ S3 # Обрабатываем пустой адрес как вырожденный случай. R$*<>$* $@@ некий спецсимвол # Вытаскиваем адрес из угловых скобок. Дважды и даже трижды. Зачем это все? R$*<$*<$*<$+>$*>$*>$* $4 тройной уровень <<<>>> R$*<$*<$+>$*>$* $3 двойной уровень <<>> R$*<$+>$* $2 нормальный адрес RFC821/822 # Все ^ заменяем на !. R$*^$* $1!$2 давно устарело # RFC 1123 не рекомендует выполнять маршрутизацию вида <@a,@b,@c:user@d>. # Перепишем как @a,@b,@c:user<@d>. В правиле 0 отбросим все, что # до двоеточия. Но оно может пригодиться для "From_". R$*@$*@$* $1^$2@$3 заменим левые @ на ^ # Обычный адрес в стиле internet. R$+@$+ $:$1<@$2> домен заключаем в <скобки> R$*^$* $1@$2 обратно ^ => @ R$+<$+@$+> $1$2<@$3> a => ab<@c> # Приведение синонимов к полным именам. Обращение к BIND. R$*<@$-> $:$1<@$[$2$:$2$]> ищем записи типа CNAME # Канонический вид готов. R$+<@$+> $@$1<@$2> получилось ab<@c> # UUCP-переадресация через себя R$=w!$* $2 myname!addr => addr # Типичный UUCP-адрес, добавляем ".uucp". R$~B!$* $@$2<@$1.uucp> ab!cd => cd<@ab.uucp> # UUCP-адрес в доменной адресации, преобразуем в internet. R$*.$~B!$* $@$3<@$1.$2> ab.c!de => de<@ab.c> # Адрес вида user%host, приведем к виду a%b%c@d. R$*%$* $1@$2 все @ заменим на % R$*@$*@$* $1%$2@$3 последний % на @ R$*@$* $@$1<@$2> поставим скобки # Просто user. Дописываем свой домен. R$* $@$1<@$w> добавляем свой домен #------------------------------------------- # Правилo 4: преобразование во внешнюю форму #------------------------------------------- S4 R@ $@ пустой <> адрес # Преобразование адреса вида 1.2.3.4 в имя домена. Обращение к BIND. R$*<@[$+]> $:$1<@$[[$2]$]> приведение численного адреса # Еще одно обращение к BIND. Приведение синонимов к полным именам. # В принципе, можно этого не делать, если relay сделает это за нас, # но при этом письмо может пойти по весьма странному пути. R$*<@$-> $:$1<@$[$2$:$2$]> ищем записи типа CNAME # Убираем угловые скобки. R$*<@$+.uucp> $2!$1 приводим в человеческий вид R$*<$+> $1$2 приводим в человеческий вид # Удаляем повторяющиеся домены. R$+%$=w@$=w $1@$w u%host@host => u@host #------------------------------------- # Правилo 7: поиск в таблице маршрутов #------------------------------------- S7 # Наш домен - локальная почта. R$*<@$=w> $@$1<@$w> приводим к стандартному домену # Запрашиваем в таблице маршрутов. R$*<@$*> $:$1<@$2^$(R$2$:%$)> ставим маркер ^ # Перебираем все субдомены. # <@addr^%> - не нашли. R$*<@$*.$-.$-.$-.$-.$-^%> $:$1<@$2.$3.$4.$5.$6.$7^$(R.$3.$4.$5.$6.$7$:%$)> R$*<@$*.$-.$-.$-.$-^%> $:$1<@$2.$3.$4.$5.$6^$(R.$3.$4.$5.$6$:%$)> R$*<@$*.$-.$-.$-^%> $:$1<@$2.$3.$4.$5^$(R.$3.$4.$5$:%$)> R$*<@$*.$-.$-^%> $:$1<@$2.$3.$4^$(R.$3.$4$:%$)> R$*<@$*.$-^%> $:$1<@$2.$3^$(R.$3$:%$)> R$*<@$*^%> $:$1<@$2^$(R.$:%$)> ищем default (.) R$*<@$*^%> $@$1<@^%No route to $2> R$*<@$*^%$*> $@$1<@$2^%$3> ошибка R$*<@$*^:$*> $@$1<@$2^:$3> запуск фильтра R$*<@$*^/$*> $@$1<@$2^/$3> запись в файл R$*<@$*^=$*@> $@$1<@$2^=$3@$w> замена домена R$*<@$*^=$*> $@$1<@$2^=$3> замена домена # Добавляем имя мэйлера, если не указано. R$*<@$*^!!$*> $1<@$2^uucpb!!$3> <@addr^!!host> мэйлер uucpb R$*<@$*^!$*> $1<@$2^uucp!$3> <@addr^!host> мэйлер uucp R$*<@$*^@$*> $1<@$2^tcp@$3> <@addr^@> мэйлер tcp # Добавляем имя хоста, если не указано. R$*<@$*^$*!> $:$1<@$2^$3!$2> <@addr^m!> правильный маршрут R$*<@$*^$*@> $:$1<@$2^$3@$2> <@addr^m@> правильный маршрут # Удаляем .uucp для UUCP-мэйлеров. R$*<@$*^$*!$+.uucp> $1<@$2^$3!$4> <@addr^m!host.uucp> # Возвращаем: # <@addr^mailer@host>, mailer=uucp|tcp, через host в internet-адресации, # <@addr^mailer!host>, mailer=uucp|tcp, через host с удалением домена из адреса, # <@addr^%message> - ошибка. R$*<@$*^$*!!$*> $@$1<@$2^$3!$4> <@addr^m!!host> uucp без доменов R$*<@$*^$*!$*> $@$1<@$2^$3@$4> приводим uucp к общему виду R$*<@$*^$*@$*> $@$1<@$2^$3@$4> готовый internet-адрес R$* $@<@^%Invalid route table> #----------------------------------- # Правилo 8: повторная маршрутизация #----------------------------------- # S8 R$* $:$>3$1 канонизация R$* $:$>0$1 маршрутизация #------------------------------------------ # Правилo 9: обработка глобальных синонимов #------------------------------------------ # На вход подается канонизированный адрес. S9 # Ищем глобальный синоним в /etc/mail/routes. R$*<@$*> $:$(R$1@$2$:$1<@$2>$) если нашли, скобок <> не будет R$*<@$*> $@$1<@$2> нет такого синонима R$*@ $1@$w локальный адрес R$* $:$>3$1 канонизируем результат #------------------------- # Правилo 0: маршрутизация #------------------------- S0 # RFC 1123 не рекомендует выполнять маршрутизацию вида @a,@b,@c:user<@d>. # Шлем сразу на user@d. R@$+:$+ $2 так гораздо проще # Маршрутизация через нас. R$*<@listserv.$=w> $#prog$:/etc/mail/listserv $1 $&f R$*<@$=w> $:$1<@$w> "свой" домен - к стандарту # Обрабатываем глобальные синонимы. R$*<@$*> $:$>9$1<@$2> запускаем правило 9 # Адрес вида [1.2.3.4], преобразуем в имя, запрашивая name-сервер. R$*<@[$+]> $:$1<@$[[$2]$]> обращение к BIND # С name-сервером ничего не получилось. R$*<@[$+]> $#tcp$@[$2]$:$1@[$2] выбираем SMTP # Запрашиваем в таблице маршрутов. R$*<@$*> $:$>7$1<@$2> запускаем правило 7 # <@oldaddr^=newaddr> - переадресация на другой домен. # Заменим домен и еще раз пройдем правило 7. R$*<@$*^=$*@$*> $:$>7$3<@$4> a<@old^=b@new> -> b<@new> R$*<@$*^=$*> $:$>7$1<@$3> <@old^=new> -> <@new> R$*<@$*^=$*> $#error$:Loop in routes # Ошибка: <@addr^%строка>. R$*<@$*^%$*> $#error$:$3 # <@addr^:path> - запуск фильтра. # Фильтр вызывается с двумя аргументами, первый - имя пользователя, # которому послано письмо, второй - адрес отправителя. R$*<@$*^:$*> $#prog$:$3 $1 $&f # Проверяем ограничение по хосту отправителя. # Ищем routes записи вида: # !host.from:host.to текст_сообщения_об_ошибке # - нельзя посылать от на R$*<@$*^$*!$*> $:$1<@$2^$3!$4>$(R!$&s:$4$:$) R$*<@$*^$*@$*> $:$1<@$2^$3@$4>$(R!$&s:$4$:$) R$*<@$*^$*!$*> $:$1<@$2^$3!$4>$(R!$&s$:$) R$*<@$*^$*@$*> $:$1<@$2^$3@$4>$(R!$&s$:$) R$*<@$*^$*!$*>$+ $:$1<@$2^$3!$4>$(R!$&s%$4$:$5$) R$*<@$*^$*@$*>$+ $:$1<@$2^$3@$4>$(R!$&s%$4$:$5$) R$*<$*>$+ $#error$:$3 # <@addr^m!host> - переадресация с удалением домена. R$*<@$*^$*!$*> $#$3$@$4$:$1 поехало без домена # <@addr^m@host> - переадресация в стиле internet. R$*<@$*^$*@$*> $#$3$@$4$:$1<@$2> user@host.domain # Переадресация через локальную машину. # Повторяем все сначала через правила 3 и 0. R$*!$*<@$w> $@$>8$1!$2 host!user@myname => host!user R$*%$*<@$w> $@$>8$1%$2 host%user@myname => host%user # Пустой адрес - ошибка R@ $#error$:Invalid address # Локальная доставка. R$*<@$w> $#local$:$1 R$*<@> $#local$:$1 R$+ $#local$:$1 локальный мэйлер #------------------- # Правилo 10: пустое #------------------- S10 #------------------------------------ # Правилo 11: отправитель на конверте #------------------------------------ # Перевод адресов From_ в банговую нотацию # для отслеживания маршрута статистикой. S11 # Из множеств "имен собственных" выбираем стандартное. R$*<@$=w> $:$1<@$w> "свой" домен - к стандарту # Приведение синонимов к полным именам. Обращение к BIND. #R$*<@$-> $:$1<@$[$2$:$2$]> ищем записи типа CNAME # Маршрут вида @a,@b,@c:user<@d>. R$*@$*,@$*:$*<$*> $1$2!@$3:$4<$5> @a,@b:u<@h> -> a!@b:u<@h> R$*@$*:$*<$*> $1$2:$3<$4> a!@b:u<@h> -> a!b!u<@h> # Теперь разберем обычную форму R$*@$*<@$*> $1%$2<@$3> лишние @ на % R$*:$*<@$*> $1!$3!$2 убрали все @ и : R$*<@$*> $2!$1 убрали все @ # Ставим маркер ^ и передвигаем его на имя пользователя. R$* $:^$1^ поставили ^ R$*^$*!$* $1$2!^$3 двигаем вправо # Маршрут вида u%a%b%c. R$*^$*%$*^$* $1^$3^!$2$4 a%b%c -> c!b!a R$*^$* $1$2 убираем ^ # Убираем свое имя из пути. R$=w!$* $2 убираем свое имя Rlocalhost!$* $1 отрезаем localhost # Убираем ".uucp" из адресов. R$~B.uucp!$* $1!$2 R$*!$~B.uucp!$* $1!$2!$3 # Добавляем свое имя. R$* $:$w!$1 #----------------------------------- # Правилo 12: получатель на конверте #----------------------------------- S12 # RFC 1123 не рекомендует выполнять маршрутизацию вида @a,@b,@c:user<@d>. # Шлем сразу на user@d. R@$+:$+ $2 жить стало веселей #------------------------------------------------------- # Правилo 13: получатель на конверте, в банговой нотации #------------------------------------------------------- S13 R$* $:$>12$1 запускаем правило 12 # Возврат в банговую нотацию. Применяется для переадресации в сеть, # не понимающую адресов в стиле internet. R$+<@$+.uucp> $2!$1 u@h.uucp => h!u R$+<@$*> $2!$1 u@h => h!u

Last-modified: Tue, 11 Aug 1998 05:51:46 GMT
World LibraryРеклама в библиотекеБиблиотека не предназначена для детей! Проект Либмонстра, партнеры БЦБ - Украинская цифровая библиотека и Либмонстр Россия https://database.library.by