Mail-Attachments zu Fuß – base64 encode und decode

Ich bin heute Abend echt in der Stimmung für tolle Überschriften…

Vor kurzer Zeit hatte meine Schwester mir eine Mail geschickt in der eine msg-Datei als Anhang enthalten war. Offenbar kommt sowas manchmal vor wenn Outlook nicht so richtig mit dem Senden der Mail klar kam.

Wie auch immer, da lag diese Mail vor mir und ich habe die msg-Datei dann mit einem Editor geöffnet und nach dem Anhang Ausschau gehalten. Das schaut ungefähr so aus1:

Content-Transfer-Encoding: base64

SGFsbG8gQmVybmQgT3N0ZW5kb3JmZiEKCkhlcnpsaWNoIHdpbG xrb21tZW4gYmVpIFNoYXJld2Fy ZSFkZSAtIHVuZCB2aWVsZW4gRGFuayBmdWVyIElocmUgQW5tZW xkdW5nIQoKTWl0IGRlbiBmb2xn ZW5kZW4gRGF0ZW4gaGFiZW4gU2llIFp1Z2FuZyB6dXIgU2hhcm V3YXJl

Das war dann allerdings noch deutlich länger. Den ganzen Kram habe ich dann in eine neue Textdatei kopiert und bin der dann mit OpenSSL zu Leibe gerückt:

openssl base64 -d -in infile -out outfile Das macht aus dem kodierten infile die fertige doc-Datei2

Um den umgekehrten Weg zu gehen, also eine Datei in base64 zu kodieren benutzt man:

openssl base64 -e -in infile -out outfile Aber üblicherweise machen das Mailprogramme heutzutage automatisch… Ist halt nur gut zu wissen falls mal was schief geht.

(via: Mac OS X Things)

Update:

Ich habe nach Rüdigers Kommentar bei dem zweiten openssl Aufruf -e hinzugefügt um Verwirrungen auszuschliessen. Nötig ist es nicht, macht die Sache aber klarer…

  1. Ich habe die Original-Mail mittlerweile gelöscht, daher ist das hier nur ein Beispiel []
  2. oder was auch immer da angehangen wurde, hier eben eine Word-Datei []
  • http://www.perlbase.de Neo

    Beim 2. openssl base64 bitte ein -e hinmachen.

  • http://instant-thinking.de der Dennis

    @Neo:

    Aus der Manpage von “enc”:

    -e encrypt the input data: this is the default.

    Default, da kann man immerhin zwei Tastenanschläge sparen… : )

  • http://www.perlbase.de Neo

    @der_dennis: das war mir klar. Nur manchmal, wenn man davon ausgehen kann, das User es lesen, die noch nicht viel Erfahrung mit einer Software haben, sollte man alle Schalter angeben. So können sie nachvollziehen was die Software macht.

    Würde GPG zum Beispiel jetzt decrypt als default nehmen, hier wird -e nicht mit angegeben, könnte es sein das jemand bei GPG auch -e als default vorraussetzt. Entweder verzweifelt er dann an GPG oder zerschiesst sich seine Daten.

  • http://instant-thinking.de der Dennis

    Ok, Post ist etwas geändert um die Sache klarer zu machen…

  • http://www.perlbase.de Neo

    Dennis, Du musst das nicht machen nur weil ich das schreibe ;-)

    Wo sind die Links fürs pingen in Deinem Blog geblieben?

  • http://instant-thinking.de der Dennis

    @Neo

    Trackbacks? Ich finde so was sollte Software selber finden. Und es scheint ja auch zu klappen

  • http://www.perlbase.de Neo

    jo jetzt wo du es sagst, stimmt das klappt ja wunderbar ;)