ich hab' da mal wieder ein Problem:
Ich möchte eine Multipart MIME-Mail (eigentlich ist es keine Mail, sondern eine Multipart/related SOAP-Message; aber das sollte keine Geige spielen) zerlegen und auswerten. Mit den textuellen Teilen klappt das mit email.message auch prima.Ich zerlege die Mail mit get_payload() in ihre Bestandteile und dann erhalte ich den Body jedes Einzelteils wieder mit get_payload(). Aber einige Mails/SOAP-Antworten einhalten PDFs, die als
Code: Alles auswählen
Content-Type: application/pdf
Content-ID: xxxxxxx-yyyy-zzzzzzzzzzzzzzzzzz
Content-Transfer-Encoding: binary
D.h. die schwachsinnige ASCII-Umsetzung macht das PDF kaputt. Und das alles, weil es scheint's nicht vorgesehen ist, dass jemand per Mail etwas anderes als Text verschickt. Es gibt keine Funktion get_binaray_payload().When decode is False (the default) the body is returned as a string without decoding the Content-Transfer-Encoding. However, for a Content-Transfer-Encoding of 8bit, an attempt is made to decode the original bytes using the charset specified by the Content-Type header, using the replace error handler. If no charset is specified, or if the charset given is not recognized by the email package, the body is decoded using the default ASCII charset.
Kennt jemand von euch eine Möglichkeit eine MIME-Mail vernünftig in Einzelteile zu zerlegen?
Die Inhalts-Deklaration im Header des MIME-Parts kann ich mir leider nicht aussuchen, da sie vom Sender vorgegeben ist (außerdem ist sie ja nicht falsch).
mfg Volker
PS: Wenn ihr eine Python-SOAP-Bibliothek kennt, die Multipart und SOAP 1.2 kann, wäre das natürlich ganz toll, aber da wage ich vor 2025 nicht drauf zu hoffen; weil das gibt's alles erst seit über 10 Jahren und deshalb ist es noch viel zu neu.