Configuración de Postfix con Dovecot, error de MySQL al enviar correo

Configuración de Postfix con Dovecot, error de MySQL al enviar correo

Entonces, siguiente problema. Estoy intentando configurar un servidor de correo siguiendo este tutorial aquí:https://workaround.org/ispmail/wheezy/

El problema comienza cuando intento enviar mi primer correo de prueba (dentro del sistema), aparece lo siguiente:

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)

La cuestión es que, anteriormente en el tutorial, se supone que debes probar manualmente si tus consultas SQL funcionan con

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

etcétera. Y para mí, funciona. No hay problema.

Mis archivos se ven exactamente como en el tutorial.

mysql-virtual-buzón-dominios.cf

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

mysql-alias-virtual-maps.cf

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

etcétera. ¿Alguien se ha encontrado con esto antes? ¿Alguna solución o idea?

Respuesta1

Lo que falla según el registro es el password_queryemitido por palomar.

Del tutorial enhttps://workaround.org/ispmail/wheezy/setting-up-dovecot
la consulta pegada palabra por palabra es:

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

Las comillas que aparecen %uson citas elegantes Unicode a diferencia de las comillas ASCII normales. Eso está mal y explica por qué la consulta falla si la copió y pegó como acabo de hacer arriba. Deben ser reemplazados por comillas simples normales como en:

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

Por lo general, es culpa de la plataforma de publicación que utiliza el tutorial, ya que utiliza filtros que reemplazan automáticamente las citas normales por citas elegantes. Esto es completamente incorrecto al publicar código.https://en.wikipedia.org/wiki/Quotation_marktiene un párrafo sobre esta práctica.

información relacionada