Итак, следующая проблема. Я пытаюсь настроить почтовый сервер, следуя этой инструкции здесь: https://workaround.org/ispmail/wheezy/

Проблема начинается, когда я пытаюсь отправить свое первое тестовое письмо (внутри системы), я получаю следующее:

postfix/pickup[15883]: F34B965841CF: uid=1000 from=<webmaster>
postfix/cleanup[15907]: F34B965841CF: message-id=20160519164815.F34B965841CF@mysite.com>
postfix/qmgr[15884]: F34B965841CF: from=<webmaster@mysite.com>, size=398, nrcpt=1 (queue active)
dovecot: auth-worker(15911): Warning: mysql: Query failed, retrying: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@example.org.' at line 1
dovecot: auth-worker(15911): Error: sql(john@example.org): Password query failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@example.org.' at line 1
dovecot: lda: Error: user john@example.org: Auth USER lookup failed
dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
postfix/pipe[15909]: F34B965841CF: to=<john@example.org>, relay=dovecot, delay=0.02, delays=0.01/0/0/0.02, dsn=4.3.0, status=deferred (temporary failure)

Дело в том, что ранее в Tutorial вы должны вручную попробовать, если ваши SQL-запросы работают с

postmap -q example.org mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

и так далее. И для меня это работает. Совершенно никаких проблем.

Мои файлы выглядят так же, как в учебнике

mysql-virtual-mailbox-domains.cf

user = mailuser
password = <pw>
hosts = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

mysql-virtual-alias-maps.cf

user = mailuser
password = <pw>
hosts = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

и так далее. Кто-нибудь когда-нибудь сталкивался с этим раньше? Любые решения или идеи?

1 ответ1

0

В соответствии с журналом происходит сбой в запросе password_query выданном dovecot.

Из учебника по адресу https://workaround.org/ispmail/wheezy/setting-up-dovecot
дословно вставленный запрос:

password_query = SELECT email as user, password FROM virtual_users WHERE email=’%u’;

Кавычки вокруг %u являются причудливыми кавычками в Юникоде, в отличие от обычных ASCII-кавычек. Это неправильно, и это объясняет, почему запрос не выполняется, если вы скопировали этот запрос, как я только что сделал выше. Они должны быть заменены обычными одинарными кавычками, как в:

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Как правило, это ошибка платформы публикации, которую использует учебное пособие, используя фильтры, автоматически заменяющие обычные кавычки на причудливые. Это совершенно неправильно при публикации кода. https://en.wikipedia.org/wiki/Quotation_mark содержит параграф об этой практике.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .