[Email-SIG] I don't understand why this fails: mbox to maildir based on docs

Joseph Reagle joseph.2011 at reagle.org
Sat Feb 25 00:19:37 CET 2012


I'm trying to do something real simple. Replicate an example in the docs for moving messages from maildir to mbox. (Docs use Babyl mailbox to an MH mailbox). But I'm failing and I don't know why?!?

<http://paste.pound-python.org/show/16992/>

~~~~

def convert_maildir(path):
    """Convert a maildir to mbox.
    Replicates http://docs.python.org/py3k/library/mailbox.html#examples for maildir2mbox"""
    info("converting %s" %path)

    destination = mailbox.mbox('~/inbox.mbox')
    destination.lock()
    for message in mailbox.Maildir(path):
        info("message type = %s" %type(message))
        destination.add(mailbox.MaildirMessage(message))
    destination.close()

20 <modu: Namespace(files=['Mail/inbox/'], log_to_file=False, verbose=2)
20 find_: filename = Mail/inbox/
20 find_: appending Mail/inbox/
20 conve: converting /home/reagle/Mail/inbox
20 conve: message type = <class 'mailbox.MaildirMessage'>
Traceback (most recent call last):
  File "/home/reagle/bin/kmail2mbox.py", line 75, in <module>
    convert_maildir(maildir)
  File "/home/reagle/bin/kmail2mbox.py", line 43, in convert_maildir
    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 141, in _write
    self._write_headers(msg)
  File "/usr/lib/python3.2/email/generator.py", line 373, in _write_headers
    self.write(header.encode(linesep=self._NL)+self._NL)
  File "/usr/lib/python3.2/email/header.py", line 317, in encode
    formatter.feed(lines[0], charset)
IndexError: list index out of range

~~~~




More information about the Email-SIG mailing list