Daniel_t: Python - Mailversand - Umlaute/Sonderzeichen

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

  1. Wollte noch anfügen, dass wenn ich mit

    req.write(msg)

    den Text ausgeb, dass die Sonderzeichen richtig angezeigt werden.

    lg Daniel

  2. 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";

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