LINUX.ORG.RU
решено ФорумAdmin

Как прикрутить roundcube к готовой БД?

 , , ,


0

1

Настроил почтовик вот по этому руководству: http://www.rebelcode.ru/linux/servernaya-pochta-na-osnove-postfix-dovecot-i-m.... В силу своего нубства немного поспотыкался, но в итоге всё заработало. Теперь хочу прикрутить к этому rondcube, но не въезжаю, как, потому что он использует другую структуру БД. Как его научить понимать имеющуюся?

★★★★★

Емнип Roundcube работает с почтой через IMAP, а своя БД ему нужна только как кэш и хранилище юзерских настроек.

vasilenko ★★
()
Ответ на: комментарий от vasilenko
mysql> USE mail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW tables;
+----------------+
| Tables_in_mail |
+----------------+
| domains        |
| forwardings    |
| transport      |
| users          |
+----------------+
4 rows in set (0.00 sec)

mysql> SHOW COLUMNS FROM users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| email    | varchar(80) | NO   | PRI | NULL    |       |
| password | varchar(20) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> USE roundcubemail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW tables;
+-------------------------+
| Tables_in_roundcubemail |
+-------------------------+
| cache                   |
| cache_index             |
| cache_messages          |
| cache_thread            |
| contactgroupmembers     |
| contactgroups           |
| contacts                |
| dictionary              |
| identities              |
| searches                |
| session                 |
| users                   |
+-------------------------+
12 rows in set (0.00 sec)

mysql> SHOW COLUMNS FROM users;
+-------------+------------------+------+-----+---------------------+----------------+
| Field       | Type             | Null | Key | Default             | Extra          |
+-------------+------------------+------+-----+---------------------+----------------+
| user_id     | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| username    | varchar(128)     | NO   | MUL | NULL                |                |
| mail_host   | varchar(128)     | NO   |     | NULL                |                |
| alias       | varchar(128)     | NO   | MUL | NULL                |                |
| created     | datetime         | NO   |     | 1000-01-01 00:00:00 |                |
| last_login  | datetime         | YES  |     | NULL                |                |
| language    | varchar(5)       | YES  |     | NULL                |                |
| preferences | text             | YES  |     | NULL                |                |
+-------------+------------------+------+-----+---------------------+----------------+
8 rows in set (0.00 sec)

Таблицы users есть в обеих базах, но содержимое в них разное. Что, в таком случае, должно содержаться в roundcubemail.users? Сейчас там пусто.

Axon ★★★★★
() автор топика
Ответ на: комментарий от vasilenko

И, если он работает через IMAP, то почему я не могу авторизоваться через него? При попытке залогиниться через roundcube в лог падает вот это:

Dec 16 09:33:29 Debian-60-squeeze-32-minimal dovecot: imap-login: Login: user=<myuser@mydomain>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Dec 16 09:33:29 Debian-60-squeeze-32-minimal dovecot: IMAP(myuser@mydomain): Disconnected: Logged out bytes=29/405

Axon ★★★★★
() автор топика

dovecot то есть? roundcube просто клиент

ну в общем гугли по password_query и user_query в dovecot.

RedPossum ★★★★★
()

вот же в твоем мануале

password_query = SELECT email AS user, password FROM users WHERE email = '%u';

меняй на

password_query = SELECT CONCAT(username, '@', mail_host) AS user... кстати, а что у тебя с паролями?

RedPossum ★★★★★
()
Ответ на: вот же в твоем мануале от RedPossum

password_query = SELECT email AS user, password FROM users WHERE email = '%u';

меняй на

password_query = SELECT CONCAT(username, '@', mail_host) AS user...

Где менять?

кстати, а что у тебя с паролями?

А что с ними должно быть?

Axon ★★★★★
() автор топика
Ответ на: вот же в твоем мануале от RedPossum

Нашёл в конфиге roundcube порты для IMAP/SMTP. Поменял IMAP порт на 993 (в громоптице работает через него), добавил ssl:// к имени хоста, но помогло слабо:

Dec 16 10:06:45 Debian-60-squeeze-32-minimal dovecot: imap-login: Login: user=<myuser@mydomain>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, TLS
Dec 16 10:06:45 Debian-60-squeeze-32-minimal dovecot: IMAP(myuser@mydomain): Disconnected: Logged out bytes=29/405

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Сравнил логи при удачном и неудачном логине, и обнаружил, что первая строчка появляется и в том, и в другом случае, а вот вторая - только при фейле. Получается, roundcube удачно авторизуется на сервере, а фейлится уже потом...

Axon ★★★★★
() автор топика

Чёрт, я идиот. Включил подробное логирование в roundcube и увидел, что проблема в выключенной мной из-за непонимания функции auto_create_user. Включил её, теперь всё, вроде, работает.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Где менять?

где-то в недрах /etc/dovecot и еще в /etc/postfix Ты ман то читал? в каком-нибудь /etc/dovecot/sql-conf.ext должно быть описсано 2 запроса на языке sql, которые и аутентифицируют пользователей из базы, если у тебя структура бд другая, то и запросы меняй соответственно. То же самое и с постфиксом надо сделать.

RedPossum ★★★★★
()
Ответ на: комментарий от Axon

auto_create_user

таки и вся проблема, я дольше боролся

RedPossum ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.