summaryrefslogtreecommitdiff
path: root/Mailman/pipeline/to_outgoing.py
diff options
context:
space:
mode:
authorBarry Warsaw2008-02-17 17:34:21 -0500
committerBarry Warsaw2008-02-17 17:34:21 -0500
commit69d158b13ae9cfa37040c2e7a664ca266b42050b (patch)
tree07f48ee990b6bab514f86199eaa250a04280120c /Mailman/pipeline/to_outgoing.py
parentb36de8a6a5b84021c003b728274f7e9e95861c9d (diff)
downloadmailman-69d158b13ae9cfa37040c2e7a664ca266b42050b.tar.gz
mailman-69d158b13ae9cfa37040c2e7a664ca266b42050b.tar.zst
mailman-69d158b13ae9cfa37040c2e7a664ca266b42050b.zip
Diffstat (limited to 'Mailman/pipeline/to_outgoing.py')
-rw-r--r--Mailman/pipeline/to_outgoing.py70
1 files changed, 43 insertions, 27 deletions
diff --git a/Mailman/pipeline/to_outgoing.py b/Mailman/pipeline/to_outgoing.py
index 21ba8b0d5..81d66ce4b 100644
--- a/Mailman/pipeline/to_outgoing.py
+++ b/Mailman/pipeline/to_outgoing.py
@@ -22,36 +22,52 @@ posted to the list membership. Anything else that needs to go out to some
recipient should just be placed in the out queue directly.
"""
+__metaclass__ = type
+__all__ = ['ToOutgoing']
+
+
+from zope.interface import implements
+
from Mailman.configuration import config
-from Mailman.interfaces import Personalization
+from Mailman.i18n import _
+from Mailman.interfaces import IHandler, Personalization
from Mailman.queue import Switchboard
-def process(mlist, msg, msgdata):
- interval = config.VERP_DELIVERY_INTERVAL
- # Should we VERP this message? If personalization is enabled for this
- # list and VERP_PERSONALIZED_DELIVERIES is true, then yes we VERP it.
- # Also, if personalization is /not/ enabled, but VERP_DELIVERY_INTERVAL is
- # set (and we've hit this interval), then again, this message should be
- # VERPed. Otherwise, no.
- #
- # Note that the verp flag may already be set, e.g. by mailpasswds using
- # VERP_PASSWORD_REMINDERS. Preserve any existing verp flag.
- if 'verp' in msgdata:
- pass
- elif mlist.personalize <> Personalization.none:
- if config.VERP_PERSONALIZED_DELIVERIES:
+class ToOutgoing:
+ """Send the message to the outgoing queue."""
+
+ implements(IHandler)
+
+ name = 'to-outgoing'
+ description = _('Send the message to the outgoing queue.')
+
+ def process(self, mlist, msg, msgdata):
+ """See `IHandler`."""
+ interval = config.VERP_DELIVERY_INTERVAL
+ # Should we VERP this message? If personalization is enabled for this
+ # list and VERP_PERSONALIZED_DELIVERIES is true, then yes we VERP it.
+ # Also, if personalization is /not/ enabled, but
+ # VERP_DELIVERY_INTERVAL is set (and we've hit this interval), then
+ # again, this message should be VERPed. Otherwise, no.
+ #
+ # Note that the verp flag may already be set, e.g. by mailpasswds
+ # using VERP_PASSWORD_REMINDERS. Preserve any existing verp flag.
+ if 'verp' in msgdata:
+ pass
+ elif mlist.personalize <> Personalization.none:
+ if config.VERP_PERSONALIZED_DELIVERIES:
+ msgdata['verp'] = True
+ elif interval == 0:
+ # Never VERP
+ pass
+ elif interval == 1:
+ # VERP every time
msgdata['verp'] = True
- elif interval == 0:
- # Never VERP
- pass
- elif interval == 1:
- # VERP every time
- msgdata['verp'] = True
- else:
- # VERP every `interval' number of times
- msgdata['verp'] = not (int(mlist.post_id) % interval)
- # And now drop the message in qfiles/out
- outq = Switchboard(config.OUTQUEUE_DIR)
- outq.enqueue(msg, msgdata, listname=mlist.fqdn_listname)
+ else:
+ # VERP every `interval' number of times
+ msgdata['verp'] = not (int(mlist.post_id) % interval)
+ # And now drop the message in qfiles/out
+ outq = Switchboard(config.OUTQUEUE_DIR)
+ outq.enqueue(msg, msgdata, listname=mlist.fqdn_listname)