En Wed, 03 Sep 2008 07:36:30 -0300, Corrado Gioannini <[EMAIL PROTECTED]> escribi�:

On Tue, Sep 02, 2008 at 04:50:15PM -0300, Gabriel Genellina wrote:
> messg = email.message.Message()

Replace this line with:
messg = email.mime.multipart.MIMEMultipart()
*OR*
Set the Content-Type header to "multipart/mixed" *before* anything else.

thanks Gabriel!

i coudn't have thought that setting the header in a different order
could affect the as_string method. i'll take a look at the code. :)

Yes. This is the offending sequence:

messg = email.message.Message()
messg.set_charset('ISO-8859-15')
messg["Content-type"] = "Multipart/mixed"

"Charset" is not a header by itself; it is an optional parameter of the Content-Type header. When you call set_charset(), a default 'Content-Type: text/plain; charset="ISO-8859-15"' header is added. Later, you *add* a new Content-type header -- remember that the [] notation *appends* a new header instead of replacing an existing one (yes, it is somewhat confusing...)
Your message ends up being text/plain, not multiplart as intended.
It's better to be explicit and use the email.mime.multipart.MIMEMultipart class.

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to