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-
|
2002-02-03 02:10:24 +03:00
|
|
|
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
|
2002-02-03 02:10:24 +03:00
|
|
|
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-
|
2002-02-03 02:10:24 +03:00
|
|
|
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).
|
|
|
|
|
2002-02-03 02:10:24 +03:00
|
|
|
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
|
2002-02-03 02:10:24 +03:00
|
|
|
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
|
|
|
|
2002-02-03 02:10:24 +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.
|
|
|
|
|
2002-02-03 02:10:24 +03:00
|
|
|
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
|
|
|
|
2002-02-03 02:10:24 +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
|
2002-02-03 02:10:24 +03:00
|
|
|
/^(?!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).
|
2002-02-03 02:10:24 +03:00
|
|
|
/^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.
|
|
|
|
#
|
2002-02-03 02:10:24 +03:00
|
|
|
/^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.
|
|
|
|
|
2002-02-03 02:10:24 +03:00
|
|
|
<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
|
|
|
|
|
2002-02-03 02:10:24 +03:00
|
|
|
1
|
2001-03-13 20:45:02 +03:00
|
|
|
|
|
|
|
</pre> </body> </html>
|