diff options
Diffstat (limited to 'mailman/queue')
| -rw-r--r-- | mailman/queue/__init__.py | 2 | ||||
| -rw-r--r-- | mailman/queue/archive.py | 15 | ||||
| -rw-r--r-- | mailman/queue/docs/archiver.txt | 3 | ||||
| -rw-r--r-- | mailman/queue/docs/incoming.txt | 1 | ||||
| -rw-r--r-- | mailman/queue/lmtp.py | 6 |
5 files changed, 14 insertions, 13 deletions
diff --git a/mailman/queue/__init__.py b/mailman/queue/__init__.py index 52686b3ab..f83fd46e9 100644 --- a/mailman/queue/__init__.py +++ b/mailman/queue/__init__.py @@ -378,7 +378,7 @@ class Runner: # them out of our sight. # # Find out which mailing list this message is destined for. - listname = msgdata.get('listname') + listname = unicode(msgdata.get('listname')) mlist = config.db.list_manager.get(listname) if mlist is None: elog.error('Dequeuing message destined for missing list: %s', diff --git a/mailman/queue/archive.py b/mailman/queue/archive.py index 69ec46f4b..c97bd86fb 100644 --- a/mailman/queue/archive.py +++ b/mailman/queue/archive.py @@ -24,15 +24,17 @@ __all__ = [ import os +import sys import time import logging from datetime import datetime from email.Utils import parsedate_tz, mktime_tz, formatdate +from lazr.config import as_boolean from locknix.lockfile import Lock from mailman import Defaults -from mailman.core.plugins import get_plugins +from mailman.config import config from mailman.queue import Runner log = logging.getLogger('mailman.error') @@ -80,11 +82,10 @@ class ArchiveRunner(Runner): msg['X-List-Received-Date'] = received_time # While a list archiving lock is acquired, archive the message. with Lock(os.path.join(mlist.data_path, 'archive.lck')): - for archive_factory in get_plugins('mailman.archiver'): - # A problem in one archiver should not prevent any other - # archiver from running. + for archiver in config.archivers: + # A problem in one archiver should not prevent other archivers + # from running. try: - archive = archive_factory() - archive.archive_message(mlist, msg) + archiver.archive_message(mlist, msg) except Exception: - log.exception('Broken archiver: %s' % archive.name) + log.exception('Broken archiver: %s' % archiver.name) diff --git a/mailman/queue/docs/archiver.txt b/mailman/queue/docs/archiver.txt index ed7c26d45..601857cd9 100644 --- a/mailman/queue/docs/archiver.txt +++ b/mailman/queue/docs/archiver.txt @@ -6,8 +6,7 @@ interface. By default, there's a Pipermail archiver. >>> from mailman.app.lifecycle import create_list >>> mlist = create_list(u'test@example.com') - >>> mlist.web_page_url = u'http://www.example.com/' - >>> config.db.commit() + >>> commit() >>> msg = message_from_string("""\ ... From: aperson@example.com diff --git a/mailman/queue/docs/incoming.txt b/mailman/queue/docs/incoming.txt index 22b32d828..7402d2aaf 100644 --- a/mailman/queue/docs/incoming.txt +++ b/mailman/queue/docs/incoming.txt @@ -87,7 +87,6 @@ pipeline queue. >>> fp.seek(0, 2) >>> mlist.emergency = True - >>> mlist.web_page_url = u'http://archives.example.com/' >>> inject_message(mlist, msg) >>> file_pos = fp.tell() >>> incoming.run() diff --git a/mailman/queue/lmtp.py b/mailman/queue/lmtp.py index f0895ee1f..1f45732a3 100644 --- a/mailman/queue/lmtp.py +++ b/mailman/queue/lmtp.py @@ -143,13 +143,14 @@ class LMTPRunner(Runner, smtpd.SMTPServer): # Parse the message data. If there are any defects in the # message, reject it right away; it's probably spam. msg = email.message_from_string(data, Message) + msg.original_size = len(data) if msg.defects: return ERR_501 msg['X-MailFrom'] = mailfrom except Exception, e: elog.exception('LMTP message parsing') config.db.abort() - return CRLF.join([ERR_451 for to in rcpttos]) + return CRLF.join(ERR_451 for to in rcpttos) # RFC 2033 requires us to return a status code for every recipient. status = [] # Now for each address in the recipients, parse the address to first @@ -169,7 +170,8 @@ class LMTPRunner(Runner, smtpd.SMTPServer): # The recipient is a valid mailing list; see if it's a valid # sub-address, and if so, enqueue it. queue = None - msgdata = dict(listname=listname) + msgdata = dict(listname=listname, + original_size=msg.original_size) if subaddress in ('bounces', 'admin'): queue = 'bounce' elif subaddress == 'confirm': |
