summaryrefslogtreecommitdiff
path: root/src/mailman/app/inject.py
diff options
context:
space:
mode:
authortoshio2012-03-14 05:30:52 +0000
committertoshio2012-03-14 05:30:52 +0000
commitd1a9979ecf35d05ed115651dcc6b8680af08b954 (patch)
treecde5caa9a9c20467b4cb3768b564d08e6a368b1a /src/mailman/app/inject.py
parentccde42a936f6c87032c7afd80f33ca5f3fa00b54 (diff)
parentbcc42e2201c7172848185e5675a7b79e3d28aa0f (diff)
downloadmailman-d1a9979ecf35d05ed115651dcc6b8680af08b954.tar.gz
mailman-d1a9979ecf35d05ed115651dcc6b8680af08b954.tar.zst
mailman-d1a9979ecf35d05ed115651dcc6b8680af08b954.zip
Diffstat (limited to 'src/mailman/app/inject.py')
-rw-r--r--src/mailman/app/inject.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mailman/app/inject.py b/src/mailman/app/inject.py
index 8bf907af0..5dcaf5584 100644
--- a/src/mailman/app/inject.py
+++ b/src/mailman/app/inject.py
@@ -17,7 +17,7 @@
"""Inject a message into a queue."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -31,12 +31,16 @@ from email.utils import formatdate, make_msgid
from mailman.config import config
from mailman.email.message import Message
+from mailman.utilities.email import add_message_hash
def inject_message(mlist, msg, recipients=None, switchboard=None, **kws):
"""Inject a message into a queue.
+ If the message does not have a Message-ID header, one is added. An
+ X-Message-Id-Hash header is also always added.
+
:param mlist: The mailing list this message is destined for.
:type mlist: IMailingList
:param msg: The Message object to inject.
@@ -56,12 +60,14 @@ def inject_message(mlist, msg, recipients=None, switchboard=None, **kws):
# message has a Message-ID.
if 'message-id' not in msg:
msg['Message-ID'] = make_msgid()
+ add_message_hash(msg)
# Ditto for Date: as required by RFC 2822.
if 'date' not in msg:
msg['Date'] = formatdate(localtime=True)
+ msg.original_size = len(msg.as_string())
msgdata = dict(
listname=mlist.fqdn_listname,
- original_size=getattr(msg, 'original_size', len(msg.as_string())),
+ original_size=msg.original_size,
)
msgdata.update(kws)
if recipients is not None:
@@ -73,6 +79,9 @@ def inject_message(mlist, msg, recipients=None, switchboard=None, **kws):
def inject_text(mlist, text, recipients=None, switchboard=None, **kws):
"""Turn text into a message and inject that into a queue.
+ If the text does not have a Message-ID header, one is added. An
+ X-Message-Id-Hash header is also always added.
+
:param mlist: The mailing list this message is destined for.
:type mlist: IMailingList
:param text: The text of the message to inject. This will be parsed into
@@ -88,5 +97,4 @@ def inject_text(mlist, text, recipients=None, switchboard=None, **kws):
:type kws: dictionary
"""
message = message_from_string(text, Message)
- message.original_size = len(text)
inject_message(mlist, message, recipients, switchboard, **kws)