Beispiel #1
0
def import_email(email, import_path, format, **kwargs):

    from caliopen.core.user import User
    from caliopen.core.contact import Contact, ContactLookup
    from caliopen.core.mail import MailMessage
    from caliopen.smtp.agent import DeliveryAgent

    AVATAR_DIR = '../../../caliopen.ng/src/assets/images/avatars'

    if format == 'maildir':
        emails = Maildir(import_path, factory=message_from_file)
        mode = 'maildir'
    else:
        if os.path.isdir(import_path):
            mode = 'mbox_directory'
            emails = {}
            files = [
                f for f in listdir(import_path)
                if os.path.isfile(os.path.join(import_path, f))
            ]
            for f in files:
                with open('%s/%s' % (import_path, f)) as fh:
                    emails[f] = message_from_file(fh)
        else:
            mode = 'mbox'
            emails = mbox(import_path)

    print email
    user = User.get(email)

    agent = DeliveryAgent()
    mailfrom = ''
    rcpts = [email]

    log.info("Processing mode %s" % mode)
    msgs = []
    for key, mail in emails.iteritems():
        # Create contact for user
        log.info('Processing mail %s' % key)
        msgs.append(MailMessage(mail))

    msgs = sorted(msgs, key=lambda msg: msg.date)

    for msg in msgs:
        for type, addresses in msg.recipients.iteritems():
            if not addresses:
                continue
            for alias, _address in addresses:
                lookup = ContactLookup.get(user, alias)
                if not lookup:
                    log.info('Creating contact %s' % alias)
                    infos = {'mail': alias}
                    name, domain = alias.split('@')

                    if os.path.isfile('%s/%s.png' % (AVATAR_DIR, name)):
                        infos.update({'avatar': '%s.png' % name})
                    Contact.create(user, infos)
        res = agent.process(mailfrom, rcpts, msg.mail.as_string())
        log.info('Process result %r' % res)
Beispiel #2
0
def import_email(email, import_path, format, **kwargs):

    from caliopen.core.user import User
    from caliopen.core.contact import Contact, ContactLookup
    from caliopen.core.mail import MailMessage
    from caliopen.smtp.agent import DeliveryAgent

    AVATAR_DIR = '../../../caliopen.ng/src/assets/images/avatars'

    if format == 'maildir':
        emails = Maildir(import_path, factory=message_from_file)
        mode = 'maildir'
    else:
        if os.path.isdir(import_path):
            mode = 'mbox_directory'
            emails = {}
            files = [f for f in listdir(import_path) if
                     os.path.isfile(os.path.join(import_path, f))]
            for f in files:
                with open('%s/%s' % (import_path, f)) as fh:
                    emails[f] = message_from_file(fh)
        else:
            mode = 'mbox'
            emails = mbox(import_path)

    print email
    user = User.get(email)

    agent = DeliveryAgent()
    mailfrom = ''
    rcpts = [email]

    log.info("Processing mode %s" % mode)
    msgs = []
    for key, mail in emails.iteritems():
        # Create contact for user
        log.info('Processing mail %s' % key)
        msgs.append(MailMessage(mail))

    msgs = sorted(msgs, key=lambda msg: msg.date)

    for msg in msgs:
        for type, addresses in msg.recipients.iteritems():
            if not addresses:
                continue
            for alias, _address in addresses:
                lookup = ContactLookup.get(user, alias)
                if not lookup:
                    log.info('Creating contact %s' % alias)
                    infos = {'mail': alias}
                    name, domain = alias.split('@')

                    if os.path.isfile('%s/%s.png' % (AVATAR_DIR, name)):
                        infos.update({'avatar': '%s.png' % name})
                    Contact.create(user, infos)
        res = agent.process(mailfrom, rcpts, msg.mail.as_string())
        log.info('Process result %r' % res)
Beispiel #3
0
#!/usr/bin/env python
import sys
from cqlengine import connection
from caliopen.config import Configuration

Configuration.load('./tmp/conf.yaml', 'global')
connection.setup(['127.0.0.1:9160'])

from caliopen.smtp.agent import DeliveryAgent

if __name__ == '__main__':
    agent = DeliveryAgent()
    data = open(sys.argv[1]).read()
    messages = agent.process(data)
Beispiel #4
0
def import_email(email, import_path, format, **kwargs):

    from caliopen.base.user.core import User
    from caliopen.base.user.core import Contact, ContactLookup
    from caliopen.base.message.format.mail import MailMessage
    from caliopen.base.user.parameters import NewContact, NewEmail
    from caliopen.smtp.agent import DeliveryAgent

    AVATAR_DIR = "../../../caliopen.ng/src/assets/images/avatars"

    if format == "maildir":
        emails = Maildir(import_path, factory=message_from_file)
        mode = "maildir"
    else:
        if os.path.isdir(import_path):
            mode = "mbox_directory"
            emails = {}
            files = [f for f in listdir(import_path) if os.path.isfile(os.path.join(import_path, f))]
            for f in files:
                with open("%s/%s" % (import_path, f)) as fh:
                    emails[f] = message_from_file(fh)
        else:
            mode = "mbox"
            emails = mbox(import_path)

    user = User.by_name(email)

    agent = DeliveryAgent()
    mailfrom = ""
    rcpts = [email]

    log.info("Processing mode %s" % mode)
    msgs = []
    for key, mail in emails.iteritems():
        # Create contact for user
        log.info("Processing mail %s" % key)
        msgs.append(MailMessage(mail))

    msgs = sorted(msgs, key=lambda msg: msg.date)

    for msg in msgs:
        for type, addresses in msg.recipients.iteritems():
            if not addresses:
                continue
            for alias, _address in addresses:
                try:
                    ContactLookup.get(user, alias)
                except NotFound:
                    log.info("Creating contact %s" % alias)
                    infos = {"mail": alias}
                    name, domain = alias.split("@")

                    if os.path.isfile("%s/%s.png" % (AVATAR_DIR, name)):
                        infos.update({"avatar": "%s.png" % name})
                    contact = NewContact()
                    contact.family_name = name
                    email = NewEmail()
                    email.address = alias
                    Contact.create(user, contact, emails=[email])
        res = agent.process(mailfrom, rcpts, msg.mail.as_string())
        log.info("Process result %r" % res)
Beispiel #5
0
#!/usr/bin/env python
import sys
from cqlengine import connection
from caliopen.config import Configuration

Configuration.load('./tmp/conf.yaml', 'global')
connection.setup(['127.0.0.1:9160'])

from caliopen.smtp.agent import DeliveryAgent


if __name__ == '__main__':
    agent = DeliveryAgent()
    data = open(sys.argv[1]).read()
    messages = agent.process(data)
Beispiel #6
0
 def process_message(self, peer, mailfrom, rcpttos, data):
     agent = DeliveryAgent()
     messages = agent.process(mailfrom, rcpttos, data)
     log.info('Deliver of %d messages' % len(messages))
     return None