[Python-de] Mail Content-Transfer-Encoding

Roland M. Kruggel rk.liste at bbf7.de
Fr Aug 17 10:40:57 UTC 2007


Hallo Liste,

ich benötig mal ein wenig Hilfe bzgl. mail.

Ich bin gerade dabei eine Programm zum einfügen von disclaimern zu 
schreiben. Wie altermime, nur wesentlich umfangreicher.

Abhängig vo is_multipart und get_content_typ füge ich den disclaimer 
wie folget ein

-->
 text = part.get_payload()
 new_text = text + txt_disclaimer
 part.set_payload(text)
--<

So weit so gut. Das funktioniert auch. Solange in der Mail der Tag 
Content-Transfer-Encoding nicht vorhanden oder 7bit ist.

Wenn 'Content-Transfer-Encoding: base64' ist geht es nicht mehr. Dann 
ist ein teil der mail als base64 codiert und der disclaimer ist 
normaler text. Klar, kann auch nicht gehen. Also habe ich den 
diclaimer auch in base64 umgewandelt

-->
 text = part.get_payload()
 txt_disclaimer_text_base64 = base64.encodestring(disclaimer_text)
 new_text = text + txt_disclaimer_base64
 part.set_payload(text)
--<

Soweit meine Logik. Das klappt aber nicht wirklich gut. Eine so 
erstellt Mail zeigt Thinderbird richtig an, KMail zeigt den 
disclaimer nicht an. Nur die Originalmail.

Ich nehme jetzt mal an, dass base64 ein 'endkennzeichen' hat und diese 
von Kmail ausgewertet wird und der Rest dann ignoriert wird. 

Wie kann ich das lösen? 
Wie verhält es sich mit quoted-printable und 8bit?

Bin über jeden Tip dankbar. Danke schon mal im vorraus.




-- 
cu
 Roland M. Kruggel


System: Intel, Debian etch, 2.6.16.16, xfce4 KDE 3.5