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

Конфигурация Postfix MySQL Dovecot Roundcube

Я настраиваю почтовый сервер и надеялся получить помощь. Он начинается с веб-почты Roundcube, когда я пытался войти в систему с существующим правильным именем пользователя и паролем, он дает мне «Ошибка входа», поэтому я проверил журнал ошибок на /var/log/mail.log и я обнаружил, что есть ошибка, которая говорит

dovecot: auth-worker(10370): Error: sql(xxx@xxxxxxxx.com,127.0.0.1): Password query 
failed: 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 ''maildir:/var/vmail/...' as userdb_mail, 150 as userd' at line 1

и когда я проверяю запрос пароля на /etc/dovecot/dovecot-sql.conf.ext

password_query = \
  SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, \
  'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \
  FROM mailbox WHERE username = '%u' AND active = '1'

что кажется правильным?

У кого-нибудь есть идея?

Измените свой конфигурационный файл с помощью SQL-запроса следующим образом:

. . . . .
password_query= SELECT username as user, \
                       password \
                  FROM mailbox \
                 WHERE username = '%n@%d' \
                   AND active=1

user_query = SELECT maildir AS userdb_home, \
                        150 AS userdb_uid, \
                          8 AS userdb_gid, \
               FROM mailbox \
              WHERE username = '%n@%d' \
                AND active=1

iterate_query = SELECT username AS user FROM mailbox
. . . . .

Имейте в виду, что после обратной косой черты нельзя использовать символы, кроме [ENTER].

Добавьте следующий блок в config.local.php из postfixadmin:

. . . . .
$CONF['maildir_name_hook'] = 'mdname';
function mdname ($domain, $user) {
    $part=explode("@", strtolower($user) );
    return sprintf("/var/vmail/%s/%s/", $part[1], $part[0]);
}
. . . . .