![Postfix-Setup mit Dovecot, MySQL-Fehler beim Senden von E-Mails](https://rvso.com/image/1493916/Postfix-Setup%20mit%20Dovecot%2C%20MySQL-Fehler%20beim%20Senden%20von%20E-Mails.png)
Also, folgendes Problem. Ich versuche, einen Mailserver einzurichten, indem ich mich grob an dieses Tutorial hier halte:https://workaround.org/ispmail/wheezy/
Das Problem beginnt, wenn ich versuche, meine erste Testmail (innerhalb des Systems) zu senden. Ich erhalte Folgendes:
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)
Die Sache ist, früher im Tutorial sollten Sie manuell versuchen, ob Ihre SQL-Abfragen funktionieren mit
postmap -q example.org mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
und so weiter. Und bei mir funktioniert es. Überhaupt kein Problem.
Meine Dateien sehen ziemlich genau so aus wie im 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'
und so weiter. Hat das schon mal jemand erlebt? Irgendwelche Lösungen oder Ideen?
Antwort1
Was laut Protokoll fehlschlägt, ist die password_query
Ausgabe von Dovecot.
Aus dem Tutorial unterhttps://workaround.org/ispmail/wheezy/setting-up-dovecot
Die wörtlich eingefügte Abfrage lautet:
password_query = SELECT email as user, password FROM virtual_users WHERE email=’%u’;
Die Anführungszeichen %u
sind Unicode-Anführungszeichen und keine normalen ASCII-Anführungszeichen. Das ist falsch und erklärt, warum die Abfrage fehlschlägt, wenn Sie diese Abfrage kopiert und eingefügt haben, wie ich es gerade oben getan habe. Sie müssen durch normale einfache Anführungszeichen ersetzt werden, wie in:
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
Normalerweise liegt es an der Veröffentlichungsplattform, die das Tutorial verwendet. Filter ersetzen normale Anführungszeichen automatisch durch ausgefallene Anführungszeichen. Das ist beim Veröffentlichen von Code völlig falsch.https://en.wikipedia.org/wiki/Anführungszeichenenthält einen Absatz zu dieser Praxis.