wiki:ConvertMboxToMaildir

mbox形式からMaildir形式に変換する

メールボックスの形式にはいろいろあります。 とは言っても、見かけるのは、古く懐かしいmbox形式か、最近よく使われているMaildir形式かでしょうか。 mbox形式から、Maildir形式に変換してみます。

Python 2.5ならとっても簡単。

#!/usr/bin/python2.5

import time
import email
import mailbox

MBOX = 'mbox'
MAILDIR = 'Maildir'
FOLDER = 'folder'

mbox = mailbox.PortableUnixMailbox(file(MBOX))
maildir = mailbox.Maildir(MAILDIR).get_folder(FOLDER)

for m in mbox:
  mm = mailbox.MaildirMessage(str(m))
  date = m.getdate('date')
  if date:
    mm.set_date(time.mktime(date))
  print maildir.add(mm)

こんなのでいいのか?って心配になるくらい簡単です。 なお、Python 2.4以前では動きません。 Python 2.4以前では、mailboxモジュールにはメールボックスの読み出しの機能しか無いのです。

(2008/6/12 - sgk)