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_query
emitido 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 %u
sã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.