Beispiel #1
0
#!/usr/bin/env python
"""
    This example shows how to restore a backup created by backup_mailbox.py"
"""
from ProcImap.ImapMailbox import ImapMailbox
from ProcImap.ImapMessage import ImapMessage
from ProcImap.Utils.MailboxFactory import MailboxFactory
from mailbox import mbox
import sys

# usage: restore_mailbox.py backupmbox imapmailbox

mailboxes = MailboxFactory('/home/goerz/.procimap/mailboxes.cfg')
server = mailboxes.get_server('Gmail')
mailbox = ImapMailbox((server, sys.argv[2]))
backupsource = mbox(sys.argv[1], factory=ImapMessage)

for message in backupsource:
    if message.has_key("X-ProcImap-Imapflags"):
        message.flags_from_string(message["X-ProcImap-Imapflags"])
        del message["X-ProcImap-Imapflags"]
    if message.has_key("X-ProcImap-ImapInternalDate"):
        message. internaldate_from_string(message["X-ProcImap-ImapInternalDate"])
        del message["X-ProcImap-ImapInternalDate"]
    mailbox.add(message)

mailbox.close()
backupsource.close()
sys.exit(0)
Beispiel #2
0
    for uid in encrypted:
        print("    Decrypting UID %s" % uid)
        message = mailbox[uid]
        labels = [mailbox_name] # all the mailboxes the mail appears (for gmail)
        if options.backup is not None:
            print("        Backing up the original (encrypted) message")
            backupbox.add(message)
        print("        Deleting the original (encrypted) message")
        if is_gmail_box(mailbox):
            labels = cache.get_labels("%s.%s" % (mailbox_name, uid))
            delete(mailbox, uid)
        else:
            mailbox.discard(uid)
        print("        Piping message through decryption program")
        try:
            message = pipe_message(message, decryptprogram)
        except:
            # the decryption program sometimes stalls. This try-except block
            # allows to use Ctrl+C to get out of processing this specific mail
            pass
        print("        Done")
        for labelbox_name in labels:
            # this can be done more efficiently once we are able to find the UID
            # of a message that was just uploaded to the mailbox
            labelbox = ImapMailbox((mailbox_server.clone(), labelbox_name))
            print("        Putting decrypted text into mailbox %s" % labelbox_name)
            labelbox.add(message)
            labelbox.close()
    mailbox.close()
sys.exit(0)
Beispiel #3
0
tobox = ImapMailbox((toserver, toboxname))
fromboxname = sys.argv[1]
frombox = mailbox.mbox(fromboxname)
frombox.lock()
tobox.lock()

i = 1
print "Processing mbox file %s with %s messages" % (fromboxname, len(frombox))
for message in frombox:
    print "%s" % i
    if message['Message-Id'] is None:
        print "   WARNING: message has no message-id (mesage ID will be added)"
        message.add_header("Message-Id", make_msgid('katamon.mbox2imap'))
    if True:
        try:
            tobox.add(message)
        except ImapNotOkError:
            print "   ERROR: Transaction failed for message %s" % i
            toserver.reconnect()
            tobox = ImapMailbox((toserver, toboxname))
            time.sleep(5)
        time.sleep(1)
        number_in_tobox = len(tobox.get_all_uids())
        #time.sleep(1)
        print "    Added Message, %s in mailbox" % number_in_tobox
    i = i + 1

frombox.close()
tobox.close()
sys.exit(0)
Beispiel #4
0
fromboxname = sys.argv[1]
frombox = mailbox.mbox(fromboxname)
frombox.lock()
tobox.lock()


i = 1
print "Processing mbox file %s with %s messages" % (fromboxname, len(frombox))
for message in frombox:
    print "%s" % i
    if message['Message-Id'] is None:
        print "   WARNING: message has no message-id (mesage ID will be added)"
        message.add_header("Message-Id", make_msgid('katamon.mbox2imap') )
    if True:
        try:
            tobox.add(message)
        except ImapNotOkError:
            print "   ERROR: Transaction failed for message %s" % i
            toserver.reconnect()
            tobox = ImapMailbox((toserver, toboxname))
            time.sleep(5)
        time.sleep(1)
        number_in_tobox = len(tobox.get_all_uids())
        #time.sleep(1)
        print "    Added Message, %s in mailbox" % number_in_tobox
    i = i + 1

frombox.close()
tobox.close()
sys.exit(0)
Beispiel #5
0
#!/usr/bin/env python
"""
    This example shows how to restore a backup created by backup_mailbox.py"
"""
from ProcImap.ImapMailbox import ImapMailbox
from ProcImap.ImapMessage import ImapMessage
from ProcImap.Utils.MailboxFactory import MailboxFactory
from mailbox import mbox
import sys

# usage: restore_mailbox.py backupmbox imapmailbox

mailboxes = MailboxFactory('/home/goerz/.procimap/mailboxes.cfg')
server = mailboxes.get_server('Gmail')
mailbox = ImapMailbox((server, sys.argv[2]))
backupsource = mbox(sys.argv[1], factory=ImapMessage)

for message in backupsource:
    if message.has_key("X-ProcImap-Imapflags"):
        message.flags_from_string(message["X-ProcImap-Imapflags"])
        del message["X-ProcImap-Imapflags"]
    if message.has_key("X-ProcImap-ImapInternalDate"):
        message.internaldate_from_string(
            message["X-ProcImap-ImapInternalDate"])
        del message["X-ProcImap-ImapInternalDate"]
    mailbox.add(message)

mailbox.close()
backupsource.close()
sys.exit(0)