[Email-SIG] encoding error in email/generator.py

Joseph Reagle joseph.2011 at reagle.org
Mon Feb 27 19:45:25 CET 2012


Hi Barry, I'm trying to do something real simple and already bumped into a bug in header.py, now I'm getting an error in generator.py . I can send the message (off list) if needed.

def convert_maildir_using_lib(path):
    """Convert a maildir to mbox.
    Replicates http://docs.python.org/py3k/library/mailbox.html#examples for maildir2mbox
    header.py must be patched first http://bugs.python.org/issue11401"""
    info("converting %s" %path)

    dest_path = basename(path)
    destination = mailbox.mbox(dest_path)
    destination.lock()
    for message in mailbox.Maildir(path):
        info("message subject = %s" %message['subject'])
        destination.add(mailbox.MaildirMessage(message))
    destination.close()


20 conve: message subject = Re: SPAM-LOW:  Re: Catchin' up
Traceback (most recent call last):
  File "bin/kmail2mbox.py", line 95, in <module>
    convert_maildir(maildir)
  File "bin/kmail2mbox.py", line 47, in convert_maildir_using_lib
    destination.add(mailbox.MaildirMessage(message))
  File "/usr/lib/python3.2/mailbox.py", line 595, in add
    self._toc[self._next_key] = self._append_message(message)
  File "/usr/lib/python3.2/mailbox.py", line 733, in _append_message
    offsets = self._install_message(message)
  File "/usr/lib/python3.2/mailbox.py", line 805, in _install_message
    self._dump_message(message, self._file, self._mangle_from_)
  File "/usr/lib/python3.2/mailbox.py", line 215, in _dump_message
    gen.flatten(message)
  File "/usr/lib/python3.2/email/generator.py", line 88, in flatten
    self._write(msg)
  File "/usr/lib/python3.2/email/generator.py", line 134, in _write
    self._dispatch(msg)
  File "/usr/lib/python3.2/email/generator.py", line 160, in _dispatch
    meth(msg)
  File "/usr/lib/python3.2/email/generator.py", line 221, in _handle_multipart
    g.flatten(part, unixfrom=False, linesep=self._NL)
  File "/usr/lib/python3.2/email/generator.py", line 88, in flatten
    self._write(msg)
  File "/usr/lib/python3.2/email/generator.py", line 134, in _write
    self._dispatch(msg)
  File "/usr/lib/python3.2/email/generator.py", line 160, in _dispatch
    meth(msg)
  File "/usr/lib/python3.2/email/generator.py", line 385, in _handle_text
    super(BytesGenerator,self)._handle_text(msg)
  File "/usr/lib/python3.2/email/generator.py", line 198, in _handle_text
    self.write(payload)
  File "/usr/lib/python3.2/email/generator.py", line 346, in write
    self._fp.write(s.encode('ascii', 'surrogateescape'))
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 211: ordinal not in range(128)



More information about the Email-SIG mailing list