Назад | Перейти на главную страницу

Проблема аутентификации IMAP с почтовым сервером roundcube + postfix + mysql + ubuntu

Эта проблема сводит меня с ума, и теперь я в тупике. Нужна помощь, пожалуйста;)

Я настраиваю почтовый сервер на экземпляре Ubuntu 14 AWS EC2, используя серверную часть mysql, postfix MTA и клиент веб-почты roundcube. Все работает вплоть до входа через roundcube. то есть я могу отправлять и получать почту из оболочки, когда я подключаюсь к localhost через порт 25 и почтовые ящики создаются в / var / mail / virtual /. Все выглядит хорошо.

Когда я пытаюсь войти в систему с пользователем, который существует в таблице «пользователи», клиент roundcube возвращает следующую ошибку:

Не удалось подключиться к серверу хранения.

Так. Вот сообщение об ошибке / var / log / roundcube /:

[04-Jan-2016 17:43:42 +0000]: IMAP Error: Login failed for email@mydomain.co.uk from [IPADDR] LOGIN: Temporary problem, please try again later in /usr/share/roundcube/program/lib/Roundcube/rcube_imap.php on line 184 (POST /roundcube/?_task=login&_action=login)

и ошибка зарегистрирована в / var / log / mail:

Jan  4 17:49:56 ip-172-31-46-150 imapd: Connection, ip [::ffff:127.0.0.1]
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: received auth request, service=imap, authtype=login
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: authmysql: trying this module
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: authmysqllib: connected. Versions: header 50534, client 50546, server 50546
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: SQL query: SELECT id, crypt, "", uid, gid, home, concat(home,'\',maildir), "", name, "" FROM users WHERE id = 'email@mydomain.co.uk'  AND (enabled=1)
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: mysql_query failed, reconnecting: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@mydomain.co.uk'  AND (enabled=1)' at line 1
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: authmysqllib: connected. Versions: header 50534, client 50546, server 50546
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: mysql_query failed second time, giving up: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@mydomain.co.uk'  AND (enabled=1)' at line 1
Jan  4 17:49:56 ip-172-31-46-150 authdaemond: authmysql: TEMPFAIL - no more modules will be tried
Jan  4 17:49:56 ip-172-31-46-150 imapd: LOGIN FAILED, user=email@mydomain.co.uk, ip=[::ffff:127.0.0.1]
Jan  4 17:49:56 ip-172-31-46-150 imapd: authentication error: Input/output error

Очевидно, я могу опубликовать файлы конфигурации по запросу, но я не хотел слишком сильно забивать исходный вопрос.

Любая помощь очень ценится! Спасибо

соответствующие измененные файлы конфигурации ниже:

Я внес следующие изменения в / и т.д. / курьер / authdaemonrc

authmodulelist="authmysql"
DEBUG_LOGIN=2

/ и т. д. / курьер / authmysqlrc

MYSQL_USERNAME mail
MYSQL_PASSWORD mypassword
MYSQL_DATABASE maildb
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD crypt
MYSQL_MAILDIR_FIELD concat(home,'/',maildir)
MYSQL_WHERE_CLAUSE enabled=1

/etc/roundcube/main.inc.php

$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = '143';
$rcmail_config['imap_force_ns'] = true;
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_helo_host'] = 'localhost';
$rcmail_config['create_default_folders'] = TRUE;

Скопируйте и вставьте SQL из этих журналов в свой mysql клиент (CLI). Я думаю, что одинокий \ вызывает проблемы, поскольку строка считывается из файла конфигурации. Возможно concat(home, '\\', maildir) Но пути не должны использовать / ?