115 lines
3.5 KiB
HTML
115 lines
3.5 KiB
HTML
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"https://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>Postfix SQLite Howto</title>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel='stylesheet' type='text/css' href='postfix-doc.css'>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix SQLite Howto</h1>
|
|
|
|
<hr>
|
|
|
|
<h2>Introduction</h2>
|
|
|
|
<p> The Postfix sqlite map type allows you to hook up Postfix to a
|
|
SQLite database. This implementation allows for multiple sqlite
|
|
databases: you can use one for a <a href="virtual.5.html">virtual(5)</a> table, one for an
|
|
<a href="access.5.html">access(5)</a> table, and one for an <a href="aliases.5.html">aliases(5)</a> table if you want. </p>
|
|
|
|
<h2>Building Postfix with SQLite support</h2>
|
|
|
|
<p> The Postfix SQLite client utilizes the sqlite3 library,
|
|
which can be obtained from: </p>
|
|
|
|
<blockquote>
|
|
<p> <a href="https://www.sqlite.org/">https://www.sqlite.org/</a> </p>
|
|
</blockquote>
|
|
|
|
<p> In order to build Postfix with sqlite map support, you will
|
|
need to add to CCARGS the flags -DHAS_SQLITE and -I with the directory
|
|
containing the sqlite header files, and you will need to add to
|
|
AUXLIBS the directory and name of the sqlite3 library, plus the
|
|
name of the standard POSIX thread library (pthread). For example:
|
|
</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
make -f Makefile.init makefiles \
|
|
"CCARGS=-DHAS_SQLITE -I/usr/local/include" \
|
|
"<a href="SQLITE_README.html">AUXLIBS_SQLITE</a>=-L/usr/local/lib -lsqlite3 -lpthread"
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p> If your SQLite shared library is in a directory that the RUN-TIME
|
|
linker does not know about, add a "-Wl,-R,/path/to/directory" option after
|
|
"-lsqlite3". </p>
|
|
|
|
<p> Postfix versions before 3.0 use AUXLIBS instead of <a href="SQLITE_README.html">AUXLIBS_SQLITE</a>.
|
|
With Postfix 3.0 and later, the old AUXLIBS variable still supports
|
|
building a statically-loaded SQLite database client, but only the new
|
|
<a href="SQLITE_README.html">AUXLIBS_SQLITE</a> variable supports building a dynamically-loaded or
|
|
statically-loaded SQLite database client. </p>
|
|
|
|
<blockquote>
|
|
|
|
<p> Failure to use the <a href="SQLITE_README.html">AUXLIBS_SQLITE</a> variable will defeat the purpose
|
|
of dynamic database client loading. Every Postfix executable file
|
|
will have SQLITE database library dependencies. And that was exactly
|
|
what dynamic database client loading was meant to avoid. </p>
|
|
|
|
</blockquote>
|
|
|
|
<p> Then, just run 'make'.</p>
|
|
|
|
<h2>Using SQLite tables</h2>
|
|
|
|
<p> Once Postfix is built with sqlite support, you can specify a
|
|
map type in <a href="postconf.5.html">main.cf</a> like this: </p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="sqlite_table.5.html">sqlite</a>:/etc/postfix/sqlite-aliases.cf
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p> The file /etc/postfix/sqlite-aliases.cf specifies lots of
|
|
information telling Postfix how to reference the sqlite database.
|
|
For a complete description, see the <a href="sqlite_table.5.html">sqlite_table(5)</a> manual page. </p>
|
|
|
|
<h2>Example: local aliases </h2>
|
|
|
|
<pre>
|
|
#
|
|
# sqlite config file for <a href="local.8.html">local(8)</a> <a href="aliases.5.html">aliases(5)</a> lookups
|
|
#
|
|
|
|
# Path to database
|
|
dbpath = /some/path/to/sqlite_database
|
|
|
|
# See <a href="sqlite_table.5.html">sqlite_table(5)</a> for details.
|
|
query = SELECT forw_addr FROM mxaliases WHERE alias='%s' AND status='paid'
|
|
</pre>
|
|
|
|
<h2>Credits</h2>
|
|
|
|
<p> SQLite support was added with Postfix version 2.8. </p>
|
|
|
|
<ul>
|
|
|
|
<li>Implementation by Axel Steiner</li>
|
|
<li>Documentation by Jesus Garcia Crespo</li>
|
|
|
|
</ul>
|
|
|
|
</body>
|
|
|
|
</html>
|