summaryrefslogtreecommitdiff
path: root/src/mailman/core/pipelines.py
diff options
context:
space:
mode:
authorBarry Warsaw2012-03-16 15:58:17 -0700
committerBarry Warsaw2012-03-16 15:58:17 -0700
commit24991d17919f2715a7f2e875d2fb7fe72e53efcf (patch)
tree80624655bf271f103f76377d9b09ce2ff0562dbb /src/mailman/core/pipelines.py
parent44ec37f890c7d4d35504d8f2e56c01abe8c60940 (diff)
downloadmailman-24991d17919f2715a7f2e875d2fb7fe72e53efcf.tar.gz
mailman-24991d17919f2715a7f2e875d2fb7fe72e53efcf.tar.zst
mailman-24991d17919f2715a7f2e875d2fb7fe72e53efcf.zip
Diffstat (limited to 'src/mailman/core/pipelines.py')
-rw-r--r--src/mailman/core/pipelines.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/mailman/core/pipelines.py b/src/mailman/core/pipelines.py
index bd709f41e..d5cee588b 100644
--- a/src/mailman/core/pipelines.py
+++ b/src/mailman/core/pipelines.py
@@ -31,13 +31,16 @@ import logging
from zope.interface import implements
from zope.interface.verify import verifyObject
+from mailman.app.bounces import bounce_message
from mailman.app.finder import find_components
from mailman.config import config
+from mailman.core import errors
from mailman.core.i18n import _
from mailman.interfaces.handler import IHandler
from mailman.interfaces.pipeline import IPipeline
-log = logging.getLogger('mailman.debug')
+dlog = logging.getLogger('mailman.debug')
+vlog = logging.getLogger('mailman.vette')
@@ -52,9 +55,19 @@ def process(mlist, msg, msgdata, pipeline_name='built-in'):
message_id = msg.get('message-id', 'n/a')
pipeline = config.pipelines[pipeline_name]
for handler in pipeline:
- log.debug('[pipeline] processing {0}: {1}'.format(
- handler.name, message_id))
- handler.process(mlist, msg, msgdata)
+ dlog.debug('{0} pipeline {1} processing: {2}'.format(
+ message_id, pipeline_name, handler.name))
+ try:
+ handler.process(mlist, msg, msgdata)
+ except errors.DiscardMessage as error:
+ vlog.info(
+ '{0} discarded by "{1}" pipeline handler "{2}": {3}'.format(
+ message_id, pipeline_name, handler.name, error.message))
+ except errors.RejectMessage as error:
+ vlog.info(
+ '{0} rejected by "{1}" pipeline handler "{2}": {3}'.format(
+ message_id, pipeline_name, handler.name, error.message))
+ bounce_message(mlist, msg, error)
@@ -84,7 +97,6 @@ class BuiltInPipeline(BasePipeline):
_default_handlers = (
'mime-delete',
- 'scrubber',
'tagger',
'calculate-recipients',
'avoid-duplicates',
@@ -92,8 +104,8 @@ class BuiltInPipeline(BasePipeline):
'cleanse-dkim',
'cook-headers',
'rfc-2369',
- 'to-digest',
'to-archive',
+ 'to-digest',
'to-usenet',
'after-delivery',
'acknowledge',