Configuração do Postfix com Dovecot, erro MySQL ao enviar e-mail

Configuração do Postfix com Dovecot, erro MySQL ao enviar e-mail

Então, seguinte problema. Estou tentando configurar um Mailserver seguindo livremente este tutorial aqui:https://workaround.org/ispmail/wheezy/

O problema começa quando tento enviar meu primeiro testmail (dentro do sistema), recebo o seguinte:

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)

O problema é que, no início do Tutorial, você deveria tentar manualmente se suas consultas SQL funcionam com

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

e assim por diante. E para mim, funciona. Não há problema algum.

Meus arquivos são exatamente como no tutorial

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'

e assim por diante. Alguém já encontrou isso antes? Alguma solução ou ideia?

Responder1

O que falha de acordo com o log é o password_queryemitido pelo pombal.

Do tutorial emhttps://workaround.org/ispmail/wheezy/setting-up-dovecot
a consulta colada literalmente é:

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

As aspas ao redor %usão citações sofisticadas de Unicode, em oposição às cotações ASCII normais. Isso está errado e explica por que a consulta falha se você a copiou e colou como fiz acima. Elas devem ser substituídas por aspas simples normais, como em:

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

Normalmente, a culpa é da plataforma de publicação usada pelo tutorial, que usa filtros que substituem automaticamente aspas normais por citações sofisticadas. Isso está completamente errado ao publicar código.https://en.wikipedia.org/wiki/Quotation_marktem um parágrafo sobre essa prática.

informação relacionada