Настройка Postfix с Dovecot, ошибка MySQL при отправке почты

Настройка Postfix с Dovecot, ошибка MySQL при отправке почты

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

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

postfix/pickup[15883]: F34B965841CF: uid=1000 from=<webmaster>
postfix/cleanup[15907]: F34B965841CF: [email protected]>
postfix/qmgr[15884]: F34B965841CF: from=<[email protected]>, 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([email protected]): 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 [email protected]: Auth USER lookup failed
dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
postfix/pipe[15909]: F34B965841CF: to=<[email protected]>, relay=dovecot, delay=0.02, delays=0.01/0/0/0.02, dsn=4.3.0, status=deferred (temporary failure)

Дело в том, что ранее в этом руководстве вы должны были вручную проверить, работают ли ваши 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

Согласно журналу, ошибка выдается 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— это кавычки Unicode, а не обычные кавычки ASCII. Это неправильно, и это объясняет, почему запрос не выполняется, если вы скопировали и вставили этот запрос, как я только что сделал выше. Их нужно заменить обычными одинарными кавычками, как в:

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

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

Связанный контент