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.