Bei nachstehendem Skript funktioniert die Unicode Umwandlung irgendwie nicht ganz.
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import smtplib as s
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
un = "xxxxxx"
pw = "xxxxxx"
print u"Bitte Name des Empfängers eingeben:"
name = raw_input().encode(' utf-8')
print u"Bitte Mailadresse eingeben:"
to = raw_input().encode(' utf-8')
to = formataddr((str(Header(u"%s" % name, ' utf-8')), "%s" % to))
print u"Bitte Name des Absenders eingeben:"
abName = raw_input().encode(' utf-8')
print u"Bitte Mailadresse eingeben:"
me = raw_input().encode(' utf-8')
me = formataddr((str(Header(u'%s' % abName, ' utf-8')), "%s" % me))
print u"Bitte Betreff eingeben:"
subject = raw_input().encode(' utf-8')
subject = str(Header(u'%s' % subject, ' utf-8'))
print u"Bitte Text eingeben:"
nachricht = raw_input().encode(' utf-8')
text = u'%s' % nachricht
msg = MIMEMultipart('alternative')
msg.set_charset('utf8')
msg['Subject'] = subject
msg['From'] = me
msg['To'] = to
part1 = MIMEText(text.encode('utf-8'), _charset='utf-8')
msg.attach(part1)
obj = s.SMTP("xxxx.xxxxx.xx:587")
obj.starttls()
obj.login(un, pw)
obj.sendmail(me, to, msg.as_string())
dir(obj)
obj.quit()
print 'Mail erfolgreich versendet'
Wenn ich einen Namen mit Ü, Ä é etc. eingebe, dann erscheint folgende Meldung:
Aber wenn ich alles (also utf-8) durch iso-8859-1 ersetze, dann kommt die Mail problemlos an und alle Umlaute werden auch korrekt angezeigt.UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 1: ordinal not in range(128)
Was muss ich tun, wenn ich
Code: Alles auswählen
#-*- coding: utf-8 -*-
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
mfg