Base64 ist schlecht zu lesen
Bereits im vergangenen Juli hatte ich berichtet, dass ich die Moderation der Newsgroup de.alt.netdigest übernommen hatte, und auch ein wenig den von mir verwendeten Workflow vorgestellt.
Das Konversions-Script, das aus einer Einreichung per E-Mail ein Posting für die Newsgroup macht, konvertiert auch den Inhalt der Mail (des Postings) nach UTF-8 und entfernt eine ggf. vorhandene quoted-printable
-Kodierung. Beim Thema “Konvertierung” musste ich schon im November letzten Jahres einmal ansetzen, um im Subject:-Header UTF-8-Zeichen “oberhalb” von 0xff
korrekt zu kodieren; Anfang diesen Jahres stand ich dann aber zum ersten Mal vor einer E-Mail, deren Body - also der eigentliche Inhalt - als Base64 kodiert war. Eigentlich vorgesehen zur Kodierung binärer Inhalte ist das eine durchaus zulässige Kodierung für reinen Text - nur etwas schwer lesbar. Und da das vom Konversions-Script generierte Posting mit
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
gepostet wird, war das etwas blöd.
Glücklicherweise war die Lösung hinreichend einfach: so, wie man quoted-printable
nach 8bit
umkodiert, kann man das auch mit base64
machen. Es braucht nur MIME::Base64
zusätzlich zu MIME::QuotedPrint
, und zum bedarfsweisen Aufruf von decode_qp()
im Fall der Fälle einen Aufruf von decode_base64()
.
Das war einfach, und nunmehr bin ich auch auf solche seltsamen Formate gerichtet.
[Nachträglich veröffentlicht im April 2022.]
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
mitch am :
Moin!
In <20220516.1652724001.10848@mid.netdigest.de> hat irgendwas nicht geklappt, in der letzten Zeile steht =3D, wo eigentlich ein = stehen sollte. Habe aber noch nicht tiefer geguckt, woran das liegen könnte (ich habe keine Kopie der ausgehenden Mail; müsste mir das selbst nochmal schicken).
Jetzt geht’s erstmal ins Bett
Thomas Hochstein am :
Deine Mail - die als Body das eingereichte Posting enthielt - war als "8bit" kodiert, wohingegen das Posting im Body "quoted/printable" kodiert war. Das Konversionsscript geht aber davon aus, dass die Einreichung "an sich" in Ordnung ist und kodiert nur um, wenn die Mail (!) anders als "utf-8" / "8bit" kodiert ist.
Will sagen: wenn das, was Du mir schickst, bereits nicht ordnungsgemäß kodiert ist, ist es auch der Output nicht. Ich bearbeite das dann idR im Editor nach; die Stelle habe ich schlicht übersehen.
mitch am :
Danke fürs gucken!
Ich pipe das seit Jahren aus tin einfach nach "mailx".
Wenn ich "als Email senden" (oder wie das heißt) mache, dann geht der Artikel nicht unverfälscht raus, das wird dann glaube ich eher ein Zitat.
Das muss ich mir wohl mal genauer angucken und auf meiner Seite lösen :-/