Postfix PCRE Support


PCRE (Perl Compatible Regular Expressions) map support

The optional "pcre" map type allows you to specify regular expressions with the PERL style notation such as \s for space and \S for non-space. The main benefit, however, is that pcre lookups are often faster than regexp lookups. This is because the pcre implementation is often more efficient than the POSIX regular expression implementation that you find on many systems.

A description of how to use pcre tables, including examples, is given in the pcre_table(5) manual page. Information about PCRE itself can be found at http://www.pcre.org/.

Building Postfix with PCRE support

[Note: instructions to build as a dynamicmaps.cf-style plugin will be added later.]

These instructions assume that you build Postfix from source code as described in the INSTALL document. Some modification may be required if you build Postfix from a vendor-specific source package.

Note: to use pcre with Debian GNU/Linux's Postfix, all you need is to install the postfix-pcre package and you're done. There is no need to recompile Postfix.

In some future, Postfix will have a plug-in interface for adding map types. Until then, you need to compile PCRE support into Postfix.

First of all, you need the PCRE library (Perl Compatible Regular Expressions), which can be obtained from:

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

NOTE: pcre versions prior to 2.06 cannot be used.

In order to build Postfix with PCRE support you need to add -DHAS_PCRE and a -I for the PCRE include file to CCARGS, and add the path to the PCRE library to AUXLIBS, for example:

make -f Makefile.init makefiles \
    "CCARGS=-DHAS_PCRE -I/usr/local/include" \
    "AUXLIBS=-L/usr/local/lib -lpcre"

Solaris needs run-time path information too:

make -f Makefile.init makefiles \
    "CCARGS=-DHAS_PCRE -I/usr/local/include" \
    "AUXLIBS=-L/usr/local/lib -R/usr/local/lib -lpcre"

Things to know