import argparse, mailbox, email import archive.archive as archive import config if __name__ == "__main__": p = argparse.ArgumentParser(description='Export mailinglists archives') p.add_argument('name', metavar="name", help="name of the archive to export") p.add_argument('--out', '-o', help="mbox output") args = p.parse_args() with archive.Archive(args.name, config=config.db) as a: r = a.select_all() if args.out: mbox = mailbox.mbox(args.out) for (from_, author_name_, to_, subject_, date_, content_type_, content_, url_) in r: m = mailbox.mboxMessage() m['To'] = to_ m['Subject'] = subject_ addr = from_.replace('{at}', '@') if author_name_: m['From'] = email.utils.formataddr((author_name_, addr)) else: m['From'] = addr m['Date'] = email.utils.format_datetime(date_) m['Content-Type'] = content_type_ m.set_payload(content_) mbox.add(m) mbox.flush() else: for (from_, author_name_, to_, subject_, date_, content_type_, content_, url_) in r: print(date_)