PDA

View Full Version : Python, email e charset


marco.r
14-02-2006, 20:18
Sto cercando di creare delle email tramite python.
Come da documentazione procedo piu' o meno nel seguente modo:

from email import MIMEText

body = "Contenuto dell'email"
msg = MIMEText( body )

# ... impostazione dei vari header ...

raw = msg.as_string()

E questo funziona benissimo. I dolori cominciano quando ho stringhe unicode.
Invariabilmente ottengo un UnicodeEncodeError.
Io ovviamente per evitare questo specifico come encoding "utf-8", ma non da il risultato sperato:


from email import MIMEText

body = u"Questo è il contenuto dell'email"
msg = MIMEText( body, "plain", "utf-8" )

# ... impostazione dei vari header ...

raw = msg.as_string()

Dall'eccezione raccolta risulta che in effetti il charset utilizzato non sia utf-8 ma il tradizionale ascii, nonostante abbia specificato diversamente. Se invece di utf-8 provo con (ad esempio) latin-1, il problema non occorre. :mbe:
L'unico modo che ho trovato per forzare l'uso di utf-8 è quello di forzarlo come encoding di default in sitecustomize.py... ma direi che non è proprio il massimo :D.
Qualcuno ha già avuto a che fare con questi problemi ?