Ich betreibe einen Postfix-Server, der Dovecot LMTP für die E-Mail-Zustellung verwendet. Ich mache das, weil es gut mit Sieve funktioniert.
Ich habe jedoch in letzter Zeit einige E-Mails mit Unicode in der Betreffzeile erhalten.
Diese E-Mail wird von Postfix, das eindeutig SMTPUTF8 unterstützt, ordnungsgemäß empfangen. Sie bricht jedoch ab, wenn sie LMTP erreicht:
<me@myhost> (expanded from <meother@mhost>): SMTPUTF8 is required, but was not offered by host myhost[public/lmtp]
Ich habe in der Postfix SMTPUTF8-Dokumentation gelesen, dass
Wenn eine Nachricht mit der SMTPUTF8-Anforderung empfangen wird, übermittelt Postfix die Nachricht NUR dann an einen Nicht-SMTPUTF8-SMTP- oder LMTP-Server, wenn:
Kein Nachrichtenheaderwert enthält UTF-8.
Die Absenderadresse des Umschlags enthält kein UTF-8,
Keine der Umschlagempfängeradressen für diese spezielle SMTP/LMTP-Zustellungstransaktion enthält UTF-8.
HINWEIS: Empfänger in anderen E-Mail-Zustellungstransaktionen für dieselbe Nachricht können weiterhin UTF-8 enthalten.
Andernfalls gibt Postfix den/die Empfänger dieser E-Mail-Zustellungstransaktion als unzustellbar zurück. Die Zustellungsstatusbenachrichtigung ist eine SMTPUTF8-Nachricht. Sie unterliegt daher denselben Einschränkungen wie E-Mails, die mit der SMTPUTF8-Anforderung empfangen werden.
--http://www.postfix.org/SMTPUTF8_README.html#detecting
Der relevante Teil ist „Postfix liefert ... an einen Nicht-SMTPUTF8 ... LMTP-Server NUR, wenn ... [die Nachricht kein UTF8 enthält]“.
Dies ist umständlich formuliert, bedeutet aber, dass Postfix UTF8-Mails nur dann an einen nachgelagerten Server weiterleitet, wenn dieser UTF8 unterstützt.
Da ich UTF8-Mails empfange, weigert sich Postfix, sie an Dovecot LMTP zuzustellen.
Das bringt mich zu ein paar Fragen:
- Unterstützt Dovecot LMTP SMTPUTF8? (Offensichtlich nicht: http://www.dovecot.org/list/dovecot/2013-January/thread.html#87756)
- Verfügt Postfix hierfür über einen „Soft-Fail“-Modus, mit dem es die E-Mail für eine spätere Zustellung in die Warteschlange stellen, LMTP umgehen oder etwas Intelligenteres tun kann, als abzustürzen?
Antwort1
TL;DR: SieheSumming up
!
Ich bekomme auch regelmäßig E-Mails mit UTF-8
Zeichen in der Subject:
Zeile. Bisher nie welche in anderen Headern.
Obwohl mir ein „Soft-Fail“-Modus in Postfix unbekannt ist, können Sie einen anderen SMTP-Transport einrichten und Bounces als eine Art Failsafe-Modus durch diesen filtern. Ich muss diese Einrichtung jedoch selbst noch abschließen. Bis jetzt bleiben die Bounces bis zu ihrem Ablauf als unzustellbar in der Warteschlange hängen. Zumindest werden sie nicht einfach an den Absender zurückgeschickt und ich habe ein Auge auf die klebrigen Mitglieder der Warteschlange. Andererseits zögere ich, diesen Weg weiter zu gehen, da die folgende Methode für mich funktioniert (tm):
Die funktionierende Lösung (nur im Fall von UTF-8
Zeichen in Subject:
) war einfachdeaktivierenPostfix'smtputf8_enable
Funktion, die heutzutage standardmäßig auf „yes“ eingestellt ist (also bei Verwendung eines aktuellen Debian). Fügen Sie in main.cf hinzu:
smtputf8_enable = no
Das Herumprobieren smtputf8_autodetect_classes
brachte kein Ergebnis.
Die E-Mail-Nachrichten mit dieser UTF-8
Subject:
Zeile werden jetzt problemlos von Postfix verarbeitet und von Dovecot gespeichert.
Die Lösung erscheint möglicherweise kontraintuitiv, insbesondere im Hinblick auf die etwas umständlich formulierte Postfix-Dokumentation (wie Sie bereits erwähnt haben).
Das neueste Update zur SMTPUTF8
Unterstützung in Dovecot scheint das zu sein, auf das Sie sich beziehen. Ich erinnere mich, irgendwo anders einen Beitrag gesehen zu haben, in dem es hieß, dass SMTPUTF8
Dovecot in absehbarer Zeit nicht oder überhaupt nicht implementiert wird [Quellenangabe erforderlich]. Ich bin mir nicht sicher, ob dies eine verbindliche Aussage war oder nicht.
Ein weiterer Kommentar zu Dovecot SMTPUTF8
ist hier zu finden (einschließlich Ihrer Referenz und dieser SE-Frage):https://dovecot.org/list/dovecot/2016-November/106029.html
Zusammen mit diesem nächsten Beitrag scheint das Thema ungefähr Ende 2016 ins Stocken geraten zu sein:https://dovecot.org/list/dovecot/2016-September/105474.html
Stand Oktober 2022 gibt es noch keine Aussicht, dass SMTPUTF8 in naher Zukunft von Dovecot LDA/LMTP unterstützt wird. Dieses Problem wird jedoch jetzt mit der Dovecot-Bugtracker-ID „DOP-1045“ verfolgt (vgl. https://dovecot.org/list/dovecot/2019-April/115430.html).
Zusammenfassen:Wenn Sie heute keine SMTPUTF8
Unterstützung in anderen Headern als dem Subject:
Header benötigen, kommen Sie möglicherweise mit nurDeaktivieren smtputf8_enable
in main.cf von Postfixund sei glücklich, so wie du bist.
HTH