Configuração do postfix com Dovecot, erro do MySQL ao enviar email

0

Então, seguindo o problema. Eu estou tentando configurar um Mailserver vagamente seguindo este tutorial aqui: link

O problema começa quando eu tento enviar meu primeiro testmail (dentro do sistema), eu 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)

A coisa é, no início do Tutorial, você deve tentar manualmente se suas consultas SQL trabalharem com

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

e assim por diante. E para mim, funciona. Não tem problema nenhum.

Meus arquivos parecem 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 idéia?

    
por Chris 19.05.2016 / 19:16

1 resposta

0

O que falha de acordo com o log é o password_query emitido pelo dovecot.

Do tutorial em link
a consulta colada textualmente é:

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

As aspas em torno de %u são citações de fantasia Unicode, em oposição às aspas ASCII normais. Isso está errado e explica por que a consulta falha se você copiou e colou essa consulta como fiz anteriormente. Eles devem ser substituídos por aspas normais, como em:

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

Normalmente, é culpa da plataforma de publicação que o tutorial está usando, usando filtros substituindo automaticamente as aspas normais por citações extravagantes. Isso é completamente errado ao publicar o código. link tem um parágrafo sobre essa prática.

    
por 20.05.2016 / 00:30