SliTaz Man Pages

Community Doc Forum Pro Shop Bugs Hg Cook

PCRE_TABLE

Section: File Formats (5)
Updated:
Index Return to Main Contents

НАЗВАНИЕ

pcre_table - формат таблиц PCRE Postfix

ОБЗОР

pcre:/etc/postfix/filename

ОПИСАНИЕ

Почтовая система Postfix использует дополнительные таблицы для перезаписи адреса или маршрутизации почты. Обычно эти таблицы имеют формат dbm или db. Однако, поисковые таблицы можно задавать в формате PCRE (Perl Compatible Regular Expression - Регулярное выражение совместимое с Perl). Узнать о типах поисковых таблиц, поддерживаемых вашей системой Postfix, можно с помощью команды postconf -m. Общий вид таблицы PCRE:
пропуски и комментарии
Пустые строки и строки, начинающиеся с `#', игнорируются.
начальные пробелы
Строки, начинающиеся с пробела, являются продолжением предыдущей строки.
шаблон результат
При совпадении шаблона со строкой поиска используется соответствующий результат. Строка, начинающаяся с пробела, является продолжением предыдущей строки.

Каждый шаблон является регулярным выражением в стиле perl. Разделителем выражения может быть любой символ, кроме пробелов и символов, имеющих специальное значение (по традиции используется прямой слэш '/'). Регулярное выражение может содержать пробелы. По умолчанию, при сравнении регистр не учитывается, хотя следующим вторым слэшем с флагом `i' это можно изменить. Поддерживаются и другие флаги, но из них полезным является `U', который делает сравнение не прожорливым (ungreedy) (подробнее смотрите в документации PCRE и исходных файлах). Каждый шаблон применяется ко всей ключевой строке поиска. В зависимости от приложения, этой строкой может быть полное имя машины клиента, полный IP адрес клиента или полный почтовый адрес. Таким образом, поиск родительских доменов или родительских сетей не выполняется, почтовые адреса user@domain не разбиваются на свои составляющие части user и domain, а user+foo не разбиваются на user и foo. Шаблоны применяются в порядке следования в таблице, пока не будет найден шаблон, удовлетворяющий строке поиска. Замена подстрок из совпавшего выражения в строку результата возможна с помощью традиционного для perl синтаксиса ($1, $2, и т.д.). Возможно, макрос в строке результата потребуется записать как ${n} или $(n), если перед ним нет пробела.

ПРИМЕРЫ

# Protect your outgoing majordomo exploders
/^(?!owner-)(.*)-outgoing@(my.domain)$/    550 Use ${1}@${2} instead

# Возвращать письма для friend@whatever, кроме случаев, когда whatever 
# является вашим доменом (вам было бы проще возвращать все письма для
# friend@ - но это просто пример).
/^friend@(?!my.domain).*$/         550 Stick this in your pipe $0

# Многострочная запись. Текст посылается как одна строка.
#
/^noddy@connect.com.au$/
 550 This user is a funny one. You really don't want to send mail to
 them as it only makes their head spin.

СМОТРИ ТАКЖЕ

regexp_table(5) - формат таблиц регулярных выражений POSIX

ОБ АВТОРАХ

Код поиска в таблице PCRE изначально был написан:
Andrew McNamara
andrewm@connect.com.au
connect.com.au Pty. Ltd.
Level 3, 213 Miller St
North Sydney, NSW, Australia

Адаптация:
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA

Перевод:
Alex Savvin <savvin@mail.ru>, Jan 05, 2002

Index

НАЗВАНИЕ
ОБЗОР
ОПИСАНИЕ
ПРИМЕРЫ
СМОТРИ ТАКЖЕ
ОБ АВТОРАХ