NetBSD/gnu/dist/postfix/html/pcre_table.5.html

135 lines
3.9 KiB
HTML
Raw Normal View History

2001-03-13 20:45:02 +03:00
<html> <head> </head> <body> <pre>
PCRE_TABLE(5) PCRE_TABLE(5)
<b>NAME</b>
pcre_table - format of Postfix PCRE tables
<b>SYNOPSIS</b>
pcre:/etc/postfix/filename
<b>DESCRIPTION</b>
The Postfix mail system uses optional tables for address
rewriting or mail routing. These tables are usually in <b>dbm</b>
or <b>db</b> format. Alternatively, lookup tables can be speci-
fied in Perl Compatible Regular Expression form.
To find out what types of lookup tables your Postfix sys-
tem supports use the <b>postconf</b> <b>-m</b> command.
The general form of a PCRE table is:
blanks and comments
Blank lines are ignored, as are lines beginning
with `#'.
leading whitespace
Lines that begin with whitespace continue the pre-
vious line.
<i>pattern</i> <i>result</i>
When <i>pattern</i> matches a search string, use the cor-
responding <i>result</i>. A line that starts with white
space continues the preceding line.
Each pattern is a perl-like regular expression. The
expression delimiter can be any character, except whites-
pace or characters that have special meaning (tradition-
ally the forward slash is used). The regular expression
can contain whitespace.
By default, matching is case-insensitive, although follow-
ing the second slash with an `i' flag will reverse this.
Other flags are supported, but the only other useful one
is `U', which makes matching ungreedy (see PCRE documenta-
tion and source for more info).
Each pattern is applied to the entire string being looked
up. Depending on the application, that string is an
entire client hostname, an entire client IP address, or an
entire mail address. Thus, no parent domain or parent
network search is done, and <i>user@domain</i> mail addresses are
not broken up into their <i>user</i> and <i>domain</i> constituent
parts, nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>.
Patterns are applied in the order as specified in the
table, until a pattern is found that matches the search
string.
1
PCRE_TABLE(5) PCRE_TABLE(5)
Substitution of sub-strings from the matched expression is
possible using the conventional perl syntax ($1, $2,
etc.). The macros in the replacement string may need to be
written as ${n} or $(n) if they aren't followed by whites-
pace.
<b>EXAMPLES</b>
# Protect your outgoing majordomo exploders
/^(?!owner-)(.*)-outgoing@(my.domain)$/ 550 Use ${1}@${2} instead
# Bounce friend@whatever, except when whatever is our domain (you would
# be better just bouncing all friend@ mail - this is just an example).
/^friend@(?!my.domain).*$/ 550 Stick this in your pipe $0
# A multi-line entry. The text is sent as one line.
#
/^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.
<b>SEE</b> <b>ALSO</b>
<a href="regexp_table.5.html">regexp_table(5)</a> format of POSIX regular expression tables
<b>AUTHOR(S)</b>
The PCRE table lookup code was originally written by:
Andrew McNamara
andrewm@connect.com.au
connect.com.au Pty. Ltd.
Level 3, 213 Miller St
North Sydney, NSW, Australia
Adopted and adapted by:
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
2
</pre> </body> </html>