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

104 lines
4.0 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:
<i>pattern</i> <i>result</i>
When <i>pattern</i> matches a search string, use the cor-
responding <i>result</i>.
blank lines and comments
Empty lines and whitespace-only lines are ignored,
as are lines whose first non-whitespace character
is a `#'.
multi-line text
A logical line starts with non-whitespace text. A
line that starts with whitespace continues a logi-
cal line.
2001-03-13 20:45:02 +03:00
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
2001-03-13 20:45:02 +03:00
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
2001-03-13 20:45:02 +03:00
is `U', which makes matching ungreedy (see PCRE documenta-
tion and source for more info).
Each pattern is applied to the entire lookup key string.
Depending on the application, that string is an entire
2001-05-08 08:55:29 +04:00
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,
2001-05-08 08:55:29 +04:00
nor is <i>user+foo</i> broken up into <i>user</i> and <i>foo</i>.
2001-03-13 20:45:02 +03:00
Patterns are applied in the order as specified in the
table, until a pattern is found that matches the search
2001-03-13 20:45:02 +03:00
string.
Substitution of substrings from the matched expression
into the result string is possible using the conventional
perl syntax ($1, $2, etc.). The macros in the result
string may need to be written as ${n} or $(n) if they
2001-05-08 08:55:29 +04:00
aren't followed by whitespace.
2001-03-13 20:45:02 +03:00
<b>EXAMPLE</b> <b>SMTPD</b> <b>ACCESS</b> <b>MAP</b>
2001-03-13 20:45:02 +03:00
# Protect your outgoing majordomo exploders
/^(?!owner-)(.*)-outgoing@/ 550 Use ${1}@${2} instead
2001-03-13 20:45:02 +03:00
# 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
2001-03-13 20:45:02 +03:00
# A multi-line entry. The text is sent as one line.
#
/^noddy@my\.domain$/
2001-03-13 20:45:02 +03:00
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>EXAMPLE</b> <b>HEADER</b> <b>FILTER</b> <b>MAP</b>
/^Subject: make money fast/ REJECT
/^To: friend@public\.com/ REJECT
2001-03-13 20:45:02 +03:00
<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
1
2001-03-13 20:45:02 +03:00
</pre> </body> </html>