Я настраиваю почтовый сервер и надеялся получить помощь. Он начинается с веб-почты 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]);
}
. . . . .