From f3ed60124bf8fd418d628f10e021f1948c9ff532 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Wed, 14 Mar 2012 11:50:14 -0700 Subject: Subscription disabled warnings are now sent without a Precedence: header. (LP: #808821) --- src/mailman/app/bounces.py | 4 +++- src/mailman/docs/NEWS.rst | 2 ++ src/mailman/email/message.py | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mailman/app/bounces.py b/src/mailman/app/bounces.py index a9bed97ac..69250ea5a 100644 --- a/src/mailman/app/bounces.py +++ b/src/mailman/app/bounces.py @@ -225,7 +225,9 @@ def send_probe(member, msg): notice = MIMEText(text, _charset=mlist.preferred_language.charset) probe.attach(notice) probe.attach(MIMEMessage(msg)) - probe.send(mlist, envsender=probe_sender, verp=False, probe_token=token) + # Send without Precedence: bulk. (LP: #808821) + probe.send(mlist, envsender=probe_sender, verp=False, probe_token=token + noprecedence=True) return token diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst index 6869e2889..71cdcae6e 100644 --- a/src/mailman/docs/NEWS.rst +++ b/src/mailman/docs/NEWS.rst @@ -105,6 +105,8 @@ Commands Bug fixes --------- + * Subscription disabled warnings are now sent without a Precedence: + header. (LP: #808821) * Fixed KeyError in retry runner, contributed by Stephen A. Goss. (LP: #872391) * Fixed bogus use of `bounce_processing` attribute (should have been diff --git a/src/mailman/email/message.py b/src/mailman/email/message.py index d7bf81055..7f7ee66ed 100644 --- a/src/mailman/email/message.py +++ b/src/mailman/email/message.py @@ -178,7 +178,7 @@ class UserNotification(Message): self['To'] = recipients self.recipients = set([recipients]) - def send(self, mlist, **_kws): + def send(self, mlist, noprecedence=False, **_kws): """Sends the message by enqueuing it to the 'virgin' queue. This is used for all internally crafted messages. @@ -193,7 +193,7 @@ class UserNotification(Message): # UserNotifications are typically for admin messages, and for messages # other than list explosions. Send these out as Precedence: bulk, but # don't override an existing Precedence: header. - if 'precedence' not in self: + if 'precedence' not in self or not noprecedence: self['Precedence'] = 'bulk' self._enqueue(mlist, **_kws) -- cgit v1.2.3-70-g09d2 From 048d8b66972af87170803fd67f02f8c720694bbc Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Wed, 14 Mar 2012 17:14:56 -0700 Subject: Fixed a logic error and added more conditions to the doctest. --- src/mailman/app/docs/message.rst | 38 ++++++++++++++++++++++++++++++++++++++ src/mailman/email/message.py | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/mailman/app/docs/message.rst b/src/mailman/app/docs/message.rst index 3e3293196..11ab32b22 100644 --- a/src/mailman/app/docs/message.rst +++ b/src/mailman/app/docs/message.rst @@ -46,3 +46,41 @@ The message will end up in the `virgin` queue. Precedence: bulk I needed to tell you this. + +The message above got a Precedence: bulk header added by default. If the +message we're sending already has a Precedence: header, it shouldn't be +changed. + + >>> del msg['precedence'] + >>> msg['Precedence'] = 'list' + >>> msg.send(mlist) + +Again, the message will end up in the `virgin` queue but with our Precedence: +header. + + >>> switchboard = config.switchboards['virgin'] + >>> len(switchboard.files) + 1 + >>> filebase = switchboard.files[0] + >>> qmsg, qmsgdata = switchboard.dequeue(filebase) + >>> switchboard.finish(filebase) + >>> qmsg['precedence'] == 'list' + True + +Sometimes we want to send the message without a Precedence: header such as +when we send a probe message. + + >>> del msg['precedence'] + >>> msg.send(mlist, noprecedence=True) + +Again, the message will end up in the `virgin` queue but without the +Precedence: header. + + >>> switchboard = config.switchboards['virgin'] + >>> len(switchboard.files) + 1 + >>> filebase = switchboard.files[0] + >>> qmsg, qmsgdata = switchboard.dequeue(filebase) + >>> switchboard.finish(filebase) + >>> 'precedence' in qmsg + False diff --git a/src/mailman/email/message.py b/src/mailman/email/message.py index 7f7ee66ed..28d94523f 100644 --- a/src/mailman/email/message.py +++ b/src/mailman/email/message.py @@ -193,7 +193,7 @@ class UserNotification(Message): # UserNotifications are typically for admin messages, and for messages # other than list explosions. Send these out as Precedence: bulk, but # don't override an existing Precedence: header. - if 'precedence' not in self or not noprecedence: + if 'precedence' not in self and not noprecedence: self['Precedence'] = 'bulk' self._enqueue(mlist, **_kws) -- cgit v1.2.3-70-g09d2