Skip to content

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.]

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

mitch am :

mitch

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 :

Thomas Hochstein

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 :

mitch

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 :-/

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Markdown-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Gravatar, Identicon/Ycon Autoren-Bilder werden unterstützt.
Formular-Optionen
tweetbackcheck