Python - Mailversand - Umlaute/Sonderzeichen
Daniel_t
- webserver
Hi ihr,
Ich versuch nun seit einiger Zeit mit Python ein Mail zu versenden, und müh mich mit Sonderzeichen/Umlauten, dem Charset ab.
Python muss ich verwenden bzw bestehende Skripte, und selber ists mir aber leider nicht so geläufig.
Ich hab folgendes Testskript:
###############
from mod_python import apache
import smtplib
fromaddr = "mail@mail.at"
toaddr = "mail@mail.at"
subject = "TestMailing"
header = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (fromaddr, toaddr, subject)
text = "Das ist meine Testmail mit den Ümläüten öäü ??ßß"
msg = header + text
server = smtplib.SMTP('localhost')
server.sendmail(toaddr, fromaddr, msg)
server.close()
############
Eingebedet ist das in eine Simple HTML und gespeichert als test.psp
Die Umlaute kommen fast natürlich falsch an. Aber wie kann ich hier ein Charset setzen?
Das Ganze läuft auf einem RedHat mit Apache2, wo Sonderzeichen über das Putty usw nirgends ein Problem darstellen.
Hoffe auf Hilfe, verzweifle schon :/
Baba Daniel
Wollte noch anfügen, dass wenn ich mit
req.write(msg)
den Text ausgeb, dass die Sonderzeichen richtig angezeigt werden.
lg Daniel
echo $begrüßung;
Ich versuch nun seit einiger Zeit mit Python ein Mail zu versenden, und müh mich mit Sonderzeichen/Umlauten, dem Charset ab.
Die Umlaute kommen fast natürlich falsch an. Aber wie kann ich hier ein Charset setzen?
Genauso wie bei anderen Programmiersprachen auch, das ist kein Python-spezifisches Problem. Umlaute und deren Kodierung sind vom Kontext abhängig. Bei Mail ist zum einen der Body, dessen Inhalt und Kodierung dem Empfänger mit dem Content-Type-Header angezeigt wird. Hier muss einfach nur die Angabe der tatsächlichen Kodierung des Inhalts entsprechen. Zum anderen werden Umlaute im Subject anders kodiert. Siehe http://www.paefken.westfalen.de/de.newusers/umlaute-faq.txt. Das Python-Modul email bietet Unterstützung an, um die Daten Email-gerecht aufzubereiten.
echo "$verabschiedung $name";
Super danke! Ich hab dauernd gedacht, das Problem liegt am Python, dabei wurde die Mail nur nicht richtig im Client dargestellt.
Mit einem richtigen Content-Type funktionierts!
Danke