129 lines
5.1 KiB
HTML
129 lines
5.1 KiB
HTML
<html> <head> </head> <body> <pre>
|
|
REGEXP_TABLE(5) REGEXP_TABLE(5)
|
|
|
|
<b>NAME</b>
|
|
regexp_table - format of Postfix regular expression tables
|
|
|
|
<b>SYNOPSIS</b>
|
|
<b>regexp:/etc/postfix/</b><i>filename</i>
|
|
|
|
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>regexp:/etc/postfix/</b><i>filename</i>
|
|
|
|
<b>postmap</b> <b>-q</b> <b>-</b> <b>regexp:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
|
|
|
<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 POSIX 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.
|
|
|
|
To test lookup tables, use the <b>postmap</b> command as
|
|
described in the SYNOPSIS above.
|
|
|
|
The general form of a Postfix regular expression table is:
|
|
|
|
<b>/</b><i>pattern</i><b>/</b><i>flags</i> <i>result</i>
|
|
|
|
<b>!/</b><i>pattern</i><b>/</b><i>flags</i> <i>result</i>
|
|
When <i>pattern</i> matches (does not match) a search
|
|
string, use the corresponding <i>result</i> value.
|
|
|
|
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.
|
|
|
|
<b>if</b> <b>/</b><i>pattern</i><b>/</b><i>flags</i>
|
|
|
|
<b>if</b> <b>!/</b><i>pattern</i><b>/</b><i>flags</i>
|
|
|
|
<b>endif</b> Examine the lines between <b>if</b>..<b>endif</b> only if <i>pattern</i>
|
|
matches (does not match). The <b>if</b>..<b>endif</b> can nest.
|
|
Do not prepend whitespace to patterns inside
|
|
<b>if</b>..<b>endif</b>.
|
|
|
|
Each pattern is a regular expression enclosed by a pair of
|
|
delimiters. The regular expression syntax is described in
|
|
<i>re_format</i>(7). The expression delimiter can be any charac-
|
|
ter, except whitespace or characters that have special
|
|
meaning (traditionally 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 `x' (disable extended expression syntax),
|
|
and `m' (enable multi-line mode, that is, treat newline
|
|
characters as special).
|
|
|
|
Each pattern is applied to the entire lookup key string.
|
|
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.
|
|
|
|
Substitution of substrings from the matched expression
|
|
into the result string is possible using $1, $2, etc.. The
|
|
macros in the result string may need to be written as ${n}
|
|
or $(n) if they aren't followed by whitespace.
|
|
|
|
<b>EXAMPLE</b> <b>SMTPD</b> <b>ACCESS</b> <b>MAP</b>
|
|
# Disallow sender-specified routing. This is a must if you relay mail
|
|
# for other domains.
|
|
/[%!@].*[%!@]/ 550 Sender-specified routing rejected
|
|
|
|
# Postmaster is OK, that way they can talk to us about how to fix
|
|
# their problem.
|
|
/^postmaster@/ OK
|
|
|
|
# Protect your outgoing majordomo exploders
|
|
/^(.*)-outgoing@(.*)$/!/^owner-/ 550 Use ${1}@${2} instead
|
|
|
|
<b>EXAMPLE</b> <b>HEADER</b> <b>FILTER</b> <b>MAP</b>
|
|
# These were once common in junk mail.
|
|
/^Subject: make money fast/ REJECT
|
|
/^To: friend@public\.com/ REJECT
|
|
|
|
<b>EXAMPLE</b> <b>BODY</b> <b>FILTER</b> <b>MAP</b>
|
|
# First skip over base 64 encoded text to save CPU cycles.
|
|
~^[[:alnum:]+/]{60,}$~ OK
|
|
|
|
# Put your own body patterns here.
|
|
|
|
<b>SEE</b> <b>ALSO</b>
|
|
<a href="pcre_table.5.html">pcre_table(5)</a> format of PCRE tables
|
|
|
|
<b>AUTHOR(S)</b>
|
|
The regexp table lookup code was originally written by:
|
|
LaMont Jones
|
|
lamont@hp.com
|
|
|
|
That code was based on the PCRE dictionary contributed 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
|
|
|
|
REGEXP_TABLE(5)
|
|
</pre> </body> </html>
|