summaryrefslogtreecommitdiff
path: root/Mailman/ListAdmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/ListAdmin.py')
-rw-r--r--Mailman/ListAdmin.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/Mailman/ListAdmin.py b/Mailman/ListAdmin.py
index 86b769c97..9718e141b 100644
--- a/Mailman/ListAdmin.py
+++ b/Mailman/ListAdmin.py
@@ -136,7 +136,8 @@ class ListAdmin:
def HoldMessage(self, msg, reason, msgdata={}):
# Make a copy of msgdata so that subsequent changes won't corrupt the
- # request database.
+ # request database. TBD: remove the `filebase' key since this will
+ # not be relevant when the message is resurrected.
newmsgdata = {}
newmsgdata.update(msgdata)
msgdata = newmsgdata
@@ -224,7 +225,14 @@ class ListAdmin:
#
# Forward the message
if forward and addr:
- if not msg:
+ # If we've approved the message, we need to be sure to craft a
+ # completely unique second message for the forwarding operation,
+ # since we don't want to share any state or information with the
+ # normal delivery.
+ if msg:
+ fp.seek(0)
+ msg = Message.Message(fp)
+ else:
try:
fp = open(path)
except IOError, e: