summaryrefslogtreecommitdiff
path: root/mailman/queue
diff options
context:
space:
mode:
Diffstat (limited to 'mailman/queue')
-rw-r--r--mailman/queue/__init__.py2
-rw-r--r--mailman/queue/archive.py15
-rw-r--r--mailman/queue/docs/archiver.txt3
-rw-r--r--mailman/queue/docs/incoming.txt1
-rw-r--r--mailman/queue/lmtp.py6
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':