Nachdem ich mein Postfix für die Verwendung mit mysql Tabellen konfiguriert hatte, bekam ich auf einmal beinahe täglich mails, die den Text: "451 4.3.0 Error: queue file write error" und/oder: "Temporary lookup failure" enthielten:
Transcript of session follows. Out: 220 mail.domain.tld ESMTP Postfix In: EHLO [X.X.X.X] Out: 250-mail.domain.tld Out: 250-PIPELINING Out: 250-SIZE 10240000 Out: 250-VRFY Out: 250-ETRN Out: 250-AUTH PLAIN LOGIN Out: 250-AUTH=PLAIN LOGIN Out: 250-ENHANCEDSTATUSCODES Out: 250-8BITMIME Out: 250 DSN In: AUTH PLAIN XXXXXXXXXXXXXXXXXXXXXXX Out: 235 2.0.0 Authentication successful In: MAIL FROM:<sender@example.org> SIZE=1037 Out: 250 2.1.0 Ok In: RCPT TO:<empfaenger@example.org> Out: 250 2.1.5 Ok In: DATA Out: 354 End data with <CR><LF>.<CR><LF> Out: 451 4.3.0 Error: queue file write error Session aborted, reason: lost connection |
Zwar schien alles zu funktionieren und die mails kamen auch immer noch rein, ich wollte jedoch der Meldung nachgehen.
Im maillog wurde ich dann fündig, denn folgende Fehlermeldung tauchte ziemlich oft auf:
warning: mysql query failed: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '= |
Dies kam davon, weil ich die postfix Datenbank noch auf dem alten Server angelegt hatte und auf dem der Zeichensatz: latin1_swedish_ci standardmässig eingestellt war, beim neuen Server war jedoch UTF8 standard.
Das Problem kann man dann lösen, wenn man die Postfix Datenbank wie folgt konvertiert:
Login auf mysql:
mysql -uroot -p |
dann für jede Tabelle:
ALTER TABLE tbl_name CHARACTER SET utf8 COLLATE utf8_general_ci; |
und für jedes Textfeld:
ALTER TABLE tbl_name MODIFY email varchar(255) CHARACTER SET utf8; |
Quelle
- [http://www.ogalik.ee/node/18|Postfix, MySQL lookups and Temporary lookup failure]