Beispiel #1
0
def move_message_from_queue(key, mailbox, action, magic=False):
    m = open_by_key(key)
    wlemail.add_action(m, action)
    if magic:
        wlemail.add_magic(m)
        wlevacation.handle_incoming(m)
    deliver_mail(m, mailbox)
    remove_message(key)
    return m
Beispiel #2
0
def move_message_from_queue (key, mailbox, action, magic = False):
    m = open_by_key (key)
    wlemail.add_action (m, action)
    if magic:
        wlemail.add_magic (m)
        wlevacation.handle_incoming (m)
    deliver_mail (m, mailbox)
    remove_message (key)
    return m
Beispiel #3
0
def complete_and_send(m, subject, content):
    sender = wleconfirm.confirmation_sender(m)
    wlelog.log(3, 'Sending %s to %s' % (subject, sender))
    rfrom = "WLE email program <%s>" % sender
    rto = email.Utils.formataddr \
          ((wleconfig.config.get ('DEFAULT', 'myname'), sender))
    r = MIMEText(content, 'plain', wleconfig.config.get('DEFAULT', 'charset'))
    wlemail.complete_message(r, rfrom, rto, subject)
    wlemail.add_magic(r)
    wleconfirm.deliver_mail(r, 'mailbox')
Beispiel #4
0
def complete_and_send (m, subject, content):
    sender = wleconfirm.confirmation_sender (m)
    wlelog.log (3, 'Sending %s to %s' % (subject, sender))
    rfrom = "WLE email program <%s>" % sender
    rto = email.Utils.formataddr \
          ((wleconfig.config.get ('DEFAULT', 'myname'), sender))
    r = MIMEText (content, 'plain',
                  wleconfig.config.get ('DEFAULT', 'charset'))
    wlemail.complete_message (r, rfrom, rto, subject)
    wlemail.add_magic (r)
    wleconfirm.deliver_mail (r, 'mailbox')
Beispiel #5
0
def handle_ok(m):
    wlemail.add_magic(m)
    wlevacation.handle_incoming(m)
    wleconfirm.deliver_mail(m, 'mailbox')
    count_delivered()
    wleconfirm.check_discuss(m)
    if wlemail.from_mailinglist(m):
        if wleconfig.config.getboolean('DEFAULT', 'list_add_other'):
            wlelists.snoop_addresses(m)
    else:
        if wlemail.sent_by_myself(m):
            if wleconfig.config.getboolean('DEFAULT', 'confirm_recipients'):
                wlelists.add_confirmed(m.mrecipients)
        elif wleconfig.config.getboolean('DEFAULT', 'people_add_other'):
            wlelists.snoop_addresses(m)
Beispiel #6
0
def handle_ok (m):
    wlemail.add_magic (m)
    wlevacation.handle_incoming (m)
    wleconfirm.deliver_mail (m, 'mailbox')
    count_delivered ()
    wleconfirm.check_discuss (m)
    if wlemail.from_mailinglist (m):
        if wleconfig.config.getboolean ('DEFAULT', 'list_add_other'):
            wlelists.snoop_addresses (m)
    else:
        if wlemail.sent_by_myself (m):
            if wleconfig.config.getboolean ('DEFAULT', 'confirm_recipients'):
                wlelists.add_confirmed (m.mrecipients)
        elif wleconfig.config.getboolean ('DEFAULT', 'people_add_other'):
            wlelists.snoop_addresses (m)
Beispiel #7
0
def logic(m):
    count_received()
    wlemail.parse_message(m)
    log_summary(m)
    if wleconfirm.is_old_confirm(m):
        wlemail.add_action(m, 'Related to an old confirmation request')
        wleconfirm.deliver_mail(m, 'confirmedbox')
        return
    if wlemail.from_mailerdaemon(m):
        key = wleconfirm.is_confirm(m)
        if key:
            wlemail.add_action(m, 'Bounce of confirmation request')
            count_junk()
            wleconfirm.deliver_mail(m, 'junkbox')
            if wleconfig.config.getboolean('DEFAULT', 'auto_delete_bounce'):
                count_rejected()
                try:
                    wleconfirm.move_message_from_queue(key, 'junkbox',
                                                       'Confirmation bounced')
                except:
                    pass
            return
        if wlemail.sent_to_me(m):
            wlemail.add_action(m, 'Mailer daemon get through')
            wlemail.add_magic(m)
            wleconfirm.deliver_mail(m, 'mailbox')
            return
        else:
            wlemail.add_action(m, 'Suspect mailer daemon message')
            wleconfirm.deliver_mail(m, 'junkbox')
            return
    key = wleconfirm.is_confirm(m)
    if key:
        if not wlemail.is_junk(m):
            count_confirmed()
            wlelog.log(3, 'Found key in mail')
            handle_confirmation(m, key)
            return
        wlelog.log(3, 'Will not accept confirmation from junk message')
    x = wlelists.is_in_list(m, 'ignorelist')
    if x:
        wlemail.add_action(m, 'Ignore list (%s), junk box' % x)
        wleconfirm.deliver_mail(m, 'junkbox')
        count_junk()
        return
    x = wlemail.contains_command(m)
    if x:
        x(m)
        return
    if wlemail.contains_magic(m):
        wlemail.add_action(m, 'Message contains magic number')
        handle_ok(m)
        if wleconfig.config.getboolean('DEFAULT', 'magic_add_sender'):
            wlelists.snoop_addresses(m)
        return
    x = wlelists.is_in_list(m, 'whitelist')
    if x:
        wlemail.add_action(m, 'White list (%s)' % x)
        handle_ok(m)
        if wleconfig.config.getboolean('DEFAULT', 'confirm_whitelist'):
            wlelists.add_confirmed(m.msenders)
        return
    if wlelists.is_in_confirmed_list(m.msenders):
        wlemail.add_action(m, 'Sender found in authorized list')
        handle_ok(m)
        return
    if wlemail.from_mailinglist(m):
        wlemail.add_action(m, 'Bulk mail')
        wleconfirm.deliver_mail(m, 'bulkbox')
        count_bulk()
        return
    if wlemail.is_junk(m):
        wlemail.add_action(m, 'Junk mail')
        wleconfirm.deliver_mail(m, 'junkbox')
        count_junk()
        return
    # A new confirmation request is a good time to cleanup databases
    wleconfirm.cleanup_dbs()
    wleconfirm.queue(m)
    count_queued()
    return
Beispiel #8
0
def logic (m):
    count_received ()
    wlemail.parse_message (m)
    log_summary (m)
    if wleconfirm.is_old_confirm (m):
        wlemail.add_action (m, 'Related to an old confirmation request')
        wleconfirm.deliver_mail (m, 'confirmedbox')
        return
    if wlemail.from_mailerdaemon (m):
        key = wleconfirm.is_confirm (m)
        if key:
            wlemail.add_action (m, 'Bounce of confirmation request')
            count_junk ()
            wleconfirm.deliver_mail (m, 'junkbox')
            if wleconfig.config.getboolean ('DEFAULT', 'auto_delete_bounce'):
                count_rejected ()
                try:
                    wleconfirm.move_message_from_queue (key,
                                                        'junkbox',
                                                        'Confirmation bounced')
                except:
                    pass
            return
	if wlemail.sent_to_me (m):
	    wlemail.add_action (m, 'Mailer daemon get through')
	    wlemail.add_magic (m)
	    wleconfirm.deliver_mail (m, 'mailbox')
	    return
	else:
	    wlemail.add_action (m, 'Suspect mailer daemon message')
	    wleconfirm.deliver_mail (m, 'junkbox')
	    return
    key = wleconfirm.is_confirm (m)
    if key:
        if not wlemail.is_junk (m):
            count_confirmed ()
            wlelog.log (3, 'Found key in mail')
            handle_confirmation (m, key)
            return
        wlelog.log (3, 'Will not accept confirmation from junk message')
    x = wlelists.is_in_list (m, 'ignorelist')
    if x:
        wlemail.add_action (m, 'Ignore list (%s), junk box' % x)
        wleconfirm.deliver_mail (m, 'junkbox')
        count_junk ()
        return
    x = wlemail.contains_command (m)
    if x:
        x (m)
        return
    if wlemail.contains_magic (m):
        wlemail.add_action (m, 'Message contains magic number')
        handle_ok (m)
        if wleconfig.config.getboolean ('DEFAULT', 'magic_add_sender'):
            wlelists.snoop_addresses (m)
        return
    x = wlelists.is_in_list (m, 'whitelist')
    if x:
        wlemail.add_action (m, 'White list (%s)' % x)
        handle_ok (m)
        if wleconfig.config.getboolean ('DEFAULT', 'confirm_whitelist'):
            wlelists.add_confirmed (m.msenders)
        return
    if wlelists.is_in_confirmed_list (m.msenders):
        wlemail.add_action (m, 'Sender found in authorized list')
        handle_ok (m)
        return
    if wlemail.from_mailinglist (m):
        wlemail.add_action (m, 'Bulk mail')
        wleconfirm.deliver_mail (m, 'bulkbox')
        count_bulk ()
        return
    if wlemail.is_junk (m):
        wlemail.add_action (m, 'Junk mail')
        wleconfirm.deliver_mail (m, 'junkbox')
        count_junk ()
        return
    # A new confirmation request is a good time to cleanup databases
    wleconfirm.cleanup_dbs ()
    wleconfirm.queue (m)
    count_queued ()
    return