SquirrelMail - хранение настроек и адресной книги пользователя в БД MySQL

Версия для печатиОтправить другуPDF version

Squirrellmail логотип

 

Есть работающий на нескольких почтовых серверах SquirrelMail. Однако, копаясь в документации, обнаружил возможность хранения  настроек пользователя и адресной книги в БД MySQL. Это меня заинтересовало, соответственно решил попробовать.

Внимание! Не делать перенос на уже работающем  SquirrelMail, поскольку потеряются настройки и адресные книги пользователей.

Для начала создадим базу данных и выставим необходимые права:

mysql> CREATE DATABASE squirrelmail;

mysql> GRANT select,insert,update,delete ON squirrelmail.* TO squirrelmail@localhost IDENTIFIED BY 'sqlpassword';

 Дальше необходимо создать таблицу для хранения адрессной книги пользователей:

mysql> use squirrelmail;

mysql> CREATE TABLE address (
owner varchar(128) DEFAULT '' NOT NULL,
nickname varchar(16) DEFAULT '' NOT NULL,
firstname varchar(128) DEFAULT '' NOT NULL,
lastname varchar(128) DEFAULT '' NOT NULL,
email varchar(128) DEFAULT '' NOT NULL,
label varchar(255),
PRIMARY KEY (owner,nickname),
KEY firstname (firstname,lastname)
);
 

Теперь создадим таблицу для хранения настроек пользователей:

mysql> CREATE TABLE userprefs (
user varchar(128) DEFAULT '' NOT NULL,
prefkey varchar(64) DEFAULT '' NOT NULL,
prefval BLOB DEFAULT '' NOT NULL,
PRIMARY KEY (user,prefkey)
);

Вносим необходимые изменения в конфигурацию Squirrelmail:

# /usr/local/www/squirrelmail/configure

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >>
 

Переходим к пункту 9. Database:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Database
1.  DSN for Address Book   :
2.  Table for Address Book : address
 
3.  DSN for Preferences    :
4.  Table for Preferences  : userprefs
5.  Field for username     : user
6.  Field for prefs key    : prefkey
7.  Field for prefs value  : prefval
 
8.  DSN for Global Address Book            :
9.  Table for Global Address Book          : global_abook
10. Allow writing into Global Address Book : false
11. Allow listing of Global Address Book   : false
 
R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Изменяем параметр 1. DSN for Address Book. Формат записи в случае использования БД MySQL следующий:

mysql://sqluser:sqlpassword@host/database

Аналогично вносим изменения в 3. DSN for Preferences. Формат записи тот же.

В результате должно получиться следующее:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Database
1.  DSN for Address Book   : mysql://squirrelmail:sqlpassword@127.0.0.1/squirrelmail
2.  Table for Address Book : address
 
3.  DSN for Preferences    : mysql://squirrelmail:sqlpassword@127.0.0.1/squirrelmail
4.  Table for Preferences  : userprefs
5.  Field for username     : user
6.  Field for prefs key    : prefkey
7.  Field for prefs value  : prefval
 
8.  DSN for Global Address Book            :
9.  Table for Global Address Book          : global_abook
10. Allow writing into Global Address Book : false
11. Allow listing of Global Address Book   : false
 
R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit
 

 На этом все. Теперь настройки будут храниться в БД MySQL.

 

Ваша оценка: Нет Средняя: 5 (2 голоса)

Вставай, Україно!

Литература

Резистор на 2 килобайта.