Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

string payload expected: <type 'list'> error

1,149 views
Skip to first unread message

Ramdas

unread,
Nov 26, 2009, 2:57:49 PM11/26/09
to
Dear all,

I believe this is an error which was fixed in Python 2.3 itself. But I
am running Python 2,5.2 and error keeps on cropping up.

Here is my code to construct emails . It works perfectly when I dont
have any attachments. Please find my code at

http://dpaste.com/hold/125574/


However when I try constructing with attachments it crashes with this
error string payload expected: <type 'list'> error.

Going through the trace error I discover that as I call the function
msg.as_string, the function . _handle_text(self, msg) expects a string
object but I am generating list object. Can someone advise what I need
to code to parse series of attachments into an email.

Help appreciated

MRAB

unread,
Nov 26, 2009, 3:33:59 PM11/26/09
to pytho...@python.org

I've been looking at the example in the Python 2.6.2 documentation. It
looks like you should have:

msg1.add_header('Content-Disposition', 'attachment', filename=filename)

Ramdas

unread,
Nov 26, 2009, 3:49:55 PM11/26/09
to

Thanks! I did that correction, however the error still persists .....

Lie Ryan

unread,
Nov 26, 2009, 4:39:07 PM11/26/09
to
Ramdas wrote:
> Dear all,
>
> I believe this is an error which was fixed in Python 2.3 itself. But I
> am running Python 2,5.2 and error keeps on cropping up.
>
> Here is my code to construct emails . It works perfectly when I dont
> have any attachments. Please find my code at
>
> http://dpaste.com/hold/125574/
>
>
> However when I try constructing with attachments it crashes with this
> error string payload expected: <type 'list'> error.

Except if the traceback is due to a recursive function that doesn't
terminate, please always post the FULL traceback. Don't summarize the
error message.

> Going through the trace error I discover that as I call the function
> msg.as_string, the function . _handle_text(self, msg) expects a string
> object but I am generating list object. Can someone advise what I need
> to code to parse series of attachments into an email.
>
> Help appreciated

I smell this part of the code as particularly fishy:

msg1 = MIMEBase(maintype, subtype)
msg1.set_payload(MIMEText(fp.read()))

why are you wrapping a MIMEText inside a MIMEBase?

Ramdas

unread,
Nov 27, 2009, 4:43:31 AM11/27/09
to

I tried with MIMEBASE but it still fails...... I changed it to
MIMEText, hoping that might trick __handletext to think its a string
Anyway that also doesn't work.

Any ideas

Lie Ryan

unread,
Nov 29, 2009, 10:55:57 AM11/29/09
to
On 11/27/2009 8:43 PM, Ramdas wrote:
> I tried with MIMEBASE but it still fails...... I changed it to
> MIMEText, hoping that might trick __handletext to think its a string
> Anyway that also doesn't work.
>

just pass the string directly to MIMEBase.set_payload:

fp = open('...')
msg1 = MIMEBase(maintype, subtype)
msg1.set_payload(fp.read())

either that or use a more specialized subclass of MIMEBase (e.g. MIMEText).

0 new messages