diff options
| author | Barry Warsaw | 2012-03-13 21:03:01 -0700 |
|---|---|---|
| committer | Barry Warsaw | 2012-03-13 21:03:01 -0700 |
| commit | 80ac803cb2816dde0503671fd117ed134680de53 (patch) | |
| tree | ed2d40855f6b45dedf421a7a98bd83d95b6e3b40 /src/mailman/app/inject.py | |
| parent | 07685642934fe934098927a9a9d20c17080f3dab (diff) | |
| download | mailman-80ac803cb2816dde0503671fd117ed134680de53.tar.gz mailman-80ac803cb2816dde0503671fd117ed134680de53.tar.zst mailman-80ac803cb2816dde0503671fd117ed134680de53.zip | |
Diffstat (limited to 'src/mailman/app/inject.py')
| -rw-r--r-- | src/mailman/app/inject.py | 14 |
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) |
