39 lines
1 KiB
Python
39 lines
1 KiB
Python
from imaplib import IMAP4_SSL, IMAP4
|
|
from os import listdir
|
|
from os.path import isfile, join
|
|
import sys
|
|
import argparse
|
|
import mailbox
|
|
|
|
parser = argparse.ArgumentParser(
|
|
prog='mbox-to-imap',
|
|
description='Send an mbox to an imap server',
|
|
epilog='Just a debug tool')
|
|
parser.add_argument('mbox_path') # positional argument
|
|
parser.add_argument('-H', '--host', default="localhost")
|
|
parser.add_argument('-p', '--port', default="143")
|
|
parser.add_argument('-u', '--user')
|
|
parser.add_argument('-s', '--password')
|
|
parser.add_argument('-m', '--mailbox', default="INBOX")
|
|
parser.add_argument('-t', '--tls', action='store_true')
|
|
args = parser.parse_args()
|
|
|
|
mbox = mailbox.mbox(args.mbox_path)
|
|
|
|
if args.tls:
|
|
imap = IMAP4_SSL
|
|
else:
|
|
imap = IMAP4
|
|
|
|
|
|
print(args)
|
|
with imap(host=args.host, port=args.port) as M:
|
|
print(M.login(args.user, args.password))
|
|
print(M.select(args.mailbox))
|
|
for k in mbox.keys():
|
|
content = mbox.get(k).as_bytes()
|
|
M.append(args.mailbox, [], None, content)
|
|
print(f"{k}/{len(mbox)}")
|
|
|
|
|
|
|