xref: /netbsd-src/external/ibm-public/postfix/dist/html/SQLITE_README.html (revision d16b7486a53dcb8072b60ec6fcb4373a2d0c27b7)
1<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2        "http://www.w3.org/TR/html4/loose.dtd">
3
4<html>
5
6<head>
7
8<title>Postfix SQLite Howto</title>
9
10<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
11
12</head>
13
14<body>
15
16<h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix SQLite Howto</h1>
17
18<hr>
19
20<h2>Introduction</h2>
21
22<p> The Postfix sqlite map type allows you to hook up Postfix to a
23SQLite database. This implementation allows for multiple sqlite
24databases: you can use one for a <a href="virtual.5.html">virtual(5)</a> table, one for an
25<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>
26
27<h2>Building Postfix with SQLite support</h2>
28
29<p> The Postfix SQLite client utilizes the sqlite3 library,
30which can be obtained from: </p>
31
32<blockquote>
33    <p> <a href="http://www.sqlite.org/">http://www.sqlite.org/</a> </p>
34</blockquote>
35
36<p> In order to build Postfix with sqlite map support, you will
37need to add to CCARGS the flags -DHAS_SQLITE and -I with the directory
38containing the sqlite header files, and you will need to add to
39AUXLIBS the directory and name of the sqlite3 library, plus the
40name of the standard POSIX thread library (pthread).  For example:
41</p>
42
43<blockquote>
44<pre>
45make -f Makefile.init makefiles \
46     'CCARGS=-DHAS_SQLITE -I/usr/local/include' \
47     '<a href="SQLITE_README.html">AUXLIBS_SQLITE</a>=-L/usr/local/lib -lsqlite3 -lpthread'
48</pre>
49</blockquote>
50
51<p> If your SQLite shared library is in a directory that the RUN-TIME
52linker does not know about, add a "-Wl,-R,/path/to/directory" option after
53"-lsqlite3". </p>
54
55<p> Postfix versions before 3.0 use AUXLIBS instead of <a href="SQLITE_README.html">AUXLIBS_SQLITE</a>.
56With Postfix 3.0 and later, the old AUXLIBS variable still supports
57building a statically-loaded SQLite database client, but only the new
58<a href="SQLITE_README.html">AUXLIBS_SQLITE</a> variable supports building a dynamically-loaded or
59statically-loaded SQLite database client.  </p>
60
61<blockquote>
62
63<p> Failure to use the <a href="SQLITE_README.html">AUXLIBS_SQLITE</a> variable will defeat the purpose
64of dynamic database client loading. Every Postfix executable file
65will have SQLITE database library dependencies. And that was exactly
66what dynamic database client loading was meant to avoid. </p>
67
68</blockquote>
69
70<p> Then, just run 'make'.</p>
71
72<h2>Using SQLite tables</h2>
73
74<p> Once Postfix is built with sqlite support, you can specify a
75map type in <a href="postconf.5.html">main.cf</a> like this: </p>
76
77<blockquote>
78<pre>
79<a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="sqlite_table.5.html">sqlite</a>:/etc/postfix/sqlite-aliases.cf
80</pre>
81</blockquote>
82
83<p> The file /etc/postfix/sqlite-aliases.cf specifies lots of
84information telling Postfix how to reference the sqlite database.
85For a complete description, see the <a href="sqlite_table.5.html">sqlite_table(5)</a> manual page. </p>
86
87<h2>Example: local aliases </h2>
88
89<pre>
90#
91# sqlite config file for <a href="local.8.html">local(8)</a> <a href="aliases.5.html">aliases(5)</a> lookups
92#
93
94# Path to database
95dbpath = /some/path/to/sqlite_database
96
97# See <a href="sqlite_table.5.html">sqlite_table(5)</a> for details.
98query = SELECT forw_addr FROM mxaliases WHERE alias='%s' AND status='paid'
99</pre>
100
101<h2>Credits</h2>
102
103<p> SQLite support was added with Postfix version 2.8. </p>
104
105<ul>
106
107<li>Implementation by Axel Steiner</li>
108<li>Documentation by Jesus Garcia Crespo</li>
109
110</ul>
111
112</body>
113
114</html>
115