Kodierung von Headern in MIMEText
Ich verwende MIMEText, um in Python 3.2 eine E-Mail von Grund auf neu zu erstellen, und es treten Probleme beim Erstellen von Nachrichten mit Nicht-ASCII-Zeichen im Betreff auf.
Zum Beispiel
from email.mime.text import MIMEText
body = "Some text"
subject = "» My Subject" # first char is non-ascii
msg = MIMEText(body,'plain','utf-8')
msg['Subject'] = subject # <<< Problem probably here
text = msg.as_string()
Die letzte Zeile gibt mir den Fehler
UnicodeEncodeError: 'ascii' codec can't encode character '\xbb' in position 0: ordinal not in range(128)
Wie sage ich MIMEText, dass das Thema nicht ascii ist?subject.encode('utf-8')
hilft überhaupt nicht und trotzdem habe ich Leute gesehen, die Unicode-Zeichenfolgen ohne Probleme in anderen Antworten verwendet haben (siehe zum BeispielPython - Wie versende ich Utf-8-E-Mails?)
Bearbeiten: Ich möchte hinzufügen, dass der gleiche Code in Python 2.7 keine Fehler gibt (was aber nicht bedeutet, dass das Ergebnis korrekt ist).