Re: email.message.Message - as_string fails

Discussion in 'Python' started by Terry Reedy, Dec 29, 2012.

  1. Terry Reedy

    Terry Reedy Guest

    On 12/28/2012 7:22 AM, Helmut Jarausch wrote:
    > Hi,
    >
    > I'm trying to filter an mbox file by removing some messages.
    > For that I use
    > Parser= FeedParser(policy=policy.SMTP)
    > and 'feed' any lines to it.
    > If the mbox file contains a white line followed by '^From ',
    > I do
    >
    > Msg= Parser.close()
    >
    > (lateron I delete the Parser and create a new one by
    > Parser= FeedParser(policy=policy.SMTP)
    > )
    >
    > I can access parts of the message by Msg['Message-ID'], e.g.
    > but even for the very first message, trying to print it or convert it to a string
    > by MsgStr=Msg.as_string(unixfrom=True)
    >
    > lets Python (3.3.1_pre20121209) die with
    >
    > Traceback (most recent call last):
    > File "Email_Parse.py", line 35, in <module>
    > MsgStr=Msg.as_string(unixfrom=True)
    > File "/usr/lib64/python3.3/email/message.py", line 151, in as_string
    > g.flatten(self, unixfrom=unixfrom)
    > File "/usr/lib64/python3.3/email/generator.py", line 112, in flatten
    > self._write(msg)
    > File "/usr/lib64/python3.3/email/generator.py", line 171, in _write
    > self._write_headers(msg)
    > File "/usr/lib64/python3.3/email/generator.py", line 198, in _write_headers
    > self.write(self.policy.fold(h, v))
    > File "/usr/lib64/python3.3/email/policy.py", line 153, in fold
    > return self._fold(name, value, refold_binary=True)
    > File "/usr/lib64/python3.3/email/policy.py", line 176, in _fold
    > (len(lines[0])+len(name)+2 > maxlen or
    > IndexError: list index out of range


    The only list index visible is 0 in lines[0]. If this raises, lines is
    empty. You could trace back to see where lines is defined. I suspect it
    is all or part of the Msg you started with.

    I believe that some of email was rewritten for 3.3, so it is possible
    that you found a bug based on an untrue assumption. It is also possible
    that you missed a limitation in the doc, or tripped over an intended but
    not written limitation. So I hope you do the tracing, so if doc or code
    need a fix, a tracker issue can be opened.

    --
    Terry Jan Reedy
    Terry Reedy, Dec 29, 2012
    #1
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John Saunders
    Replies:
    1
    Views:
    653
    John Saunders
    Nov 18, 2003
  2. Chuck Amadi
    Replies:
    2
    Views:
    384
    chuck amadi
    Jun 6, 2004
  3. David Stockwell
    Replies:
    1
    Views:
    610
    David Bolen
    Jun 17, 2004
  4. Rogério Brito
    Replies:
    1
    Views:
    644
    Sean DiZazzo
    Sep 9, 2009
  5. Chris Rebert
    Replies:
    0
    Views:
    156
    Chris Rebert
    Dec 28, 2012
Loading...

Share This Page