Problems with email.Generator.Generator

Max M maxm at mxm.dk
Tue Sep 12 04:08:49 EDT 2006


Chris Withers wrote:
> Chris Withers wrote:
>> print msg.as_string()
>>
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset; charset="utf-8"
>                             ^^^^^^^
> Actually, even this isn't correct as you can see above...
> 
>> charset = Charset('utf-8')
>> msg = MIMEText('','plain',None)
>> msg.set_payload(u'Some text with chars that need encoding:\xa3',charset)

> Has no-one ever successfully generated a correctly formatted email with 
> email.MIMEText where the message includes non-ascii characters?!

What is the problem with encoding the message as utf-8 before setting 
the payload? That has always worked for me.


pl = u'Some text with chars that need encoding:\xa3'.encode('utf-8')
msg.set_payload(pl ,charset)

 From the docs:

"""
The payload is either a string in the case of simple message objects or 
a list of Message objects for MIME container documents (e.g. multipart/* 
and message/rfc822)
"""

Message objects are always encoded strings. I don't remember seeing that 
it should be possible to use a unicode string as a message.

The charset passed in set_payload(pl ,charset) is the charset the the 
string *is* encoded in. Not the charset it *should* be encoded in.

-- 

hilsen/regards Max M, Denmark

http://www.mxm.dk/
IT's Mad Science

Phone:  +45 66 11 84 94
Mobile: +45 29 93 42 96



More information about the Python-list mailing list