NOTE: This page is a work in progress, and has not been tested. It may
or may not be of any use, may contain numerous errors, and may turn your
tongue a strange color. Use at your own risk.
First, install MySQL, following the directions found on numerous web sites on the internet.
Next, install Horde and IMP, following directions elsewhere on this wiki.
Then, install dovecot, following the instructions on http://wiki.dovecot.org/
Configure dovecot to use MySQL as per the directions at http://wiki.dovecot.org/AuthDatabase/SQL
Now, configure IMP:
Backup horde/imp/config/servers.php and imp/config/conf.php
Edit imp/config/servers.php and set 'hordeauth' => 'full' so users only
need to login once (Horde passes authentication data to IMP).
Now, configure Horde:
Backup your horde/config/conf.php file
Backup any relevant MySQL databases
Log in to Horde as an administrative user.
Navigate: Administration -> Setup -> Horde select the Authentication tab.
Switch authentication backend ($conf[auth][driver]) to SQL authentication w/custom-made queries
Set the phptype setting to MySQL
Set the protocol setting to TCP/IP
Leave port as the default 5432
Set the hostspec to localhost
Set the username and password paramters to the SQL database username and password you set when creating the database
Set the encryption to use to store the password in the table to crypt-md5?
Set the database field to the one defined when you configured dovecot's SQL database (in this case, we will use "users" like on the dovecot website)
For query_auth, enter:
SELECT * FROM users WHERE userid = \L AND password = MD5(\P);
INSERT INTO users (domain,userid,password) VALUES ('example.org', \L, MD5(\P));
NB: Change the domain to your domain in the above query.
UPDATE users SET password = MD5(\P) WHERE userid = TRIM('@example.org' FROM \L) LIMIT 1;
NB: Change the domain to your domain in the above query.
DELETE FROM users WHERE userid = TRIM('@example.org' FROM \L) LIMIT 1;
SELECT * FROM users;