email.Message problem

  • Thread starter Corrado Gioannini
  • Start date
C

Corrado Gioannini

Hi all,
i know i'm probably going to ask a very silly question, but i
can't figure out where i'm doing wrong just reading the docs.

trying to build and send a mail message using the email.* modules
(with python 2.5).

a simplified version of my script that breaks is this:

mailtest.py
----------------------------------------------------------------------
# coding: ISO-8859-15

import os, mimetypes, smtplib, base64, StringIO
import email.message, email.header, email.generator

messg = email.message.Message()
messg.set_charset('ISO-8859-15')

messg['To'] = 'email.x@mydomain'
messg['From'] = 'email.y@mydomain'
messg['Subject'] = email.header.Header("This is a test.", 'ISO-8859-15')
messg["Message-ID"] = email.Utils.make_msgid()
messg["Content-type"] = "Multipart/mixed"
messg.preamble = "Mime test\n"

pl = email.Message.Message()
pl.add_header("Content-type", "text/plain; charset=ISO-8859-15")
pl.add_header("Content-transfer-encoding", "8bit")
pl.set_payload("Body text goes here.\n", 'ISO-8859-15')
messg.attach(pl)

messg.as_string()
----------------------------------------------------------------------

running it gives:

Traceback (most recent call last):
File "mailtest.py", line 22, in <module>
messg.as_string()
File "/usr/lib/python2.5/email/message.py", line 131, in as_string
g.flatten(self, unixfrom=unixfrom)
File "/usr/lib/python2.5/email/generator.py", line 84, in flatten
self._write(msg)
File "/usr/lib/python2.5/email/generator.py", line 109, in _write
self._dispatch(msg)
File "/usr/lib/python2.5/email/generator.py", line 135, in _dispatch
meth(msg)
File "/usr/lib/python2.5/email/generator.py", line 175, in
_handle_text
raise TypeError('string payload expected: %s' % type(payload))
TypeError: string payload expected: <type 'list'>



the real case is just a little more complex: i have to attach some
files and then send the message with smtplib to a list of recipients.

no problems when attaching files etc., but when i try to get the
message value 'flattened' to pass it to smtplib i always get an error
as above.

it seems to work only if i don't use .attach but just .set_payload in
the main message, but in this case i cannot attach the extra files
(or maybe i'm wrong in this?)


any help (or pointers to docs/examples etc) are very appreciated :)

10x,
C.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top