Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #9233 -- Allow date and message-id headers to be passed in manu…

…ally in

email messages. Previously we were creating duplicate headers, which was bad.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@9197 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 70b6c4c015b66626e65006f081cfe348f5726500 1 parent 72f387d
Malcolm Tredinnick malcolmt authored
Showing with 16 additions and 2 deletions.
  1. +8 −2 django/core/mail.py
  2. +8 −0 tests/regressiontests/mail/tests.py
10 django/core/mail.py
View
@@ -247,8 +247,14 @@ def message(self):
msg['Subject'] = self.subject
msg['From'] = self.from_email
msg['To'] = ', '.join(self.to)
- msg['Date'] = formatdate()
- msg['Message-ID'] = make_msgid()
+
+ # Email header names are case-insensitive (RFC 2045), so we have to
+ # accommodate that when doing comparisons.
+ header_names = [key.lower() for key in self.extra_headers]
+ if 'date' not in header_names:
+ msg['Date'] = formatdate()
+ if 'message-id' not in header_names:
+ msg['Message-ID'] = make_msgid()
for name, value in self.extra_headers.items():
msg[name] = value
return msg
8 tests/regressiontests/mail/tests.py
View
@@ -52,4 +52,12 @@
>>> message.as_string()
'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: quoted-printable\nSubject: Long subject lines that get wrapped should use a space continuation\n character to get expected behaviour in Outlook and Thunderbird\nFrom: from@example.com\nTo: to@example.com\nDate: ...\nMessage-ID: <...>\n\nContent'
+# Specifying dates or message-ids in the extra headers overrides the defaul
+# values (#9233).
+
+>>> headers = {"date": "Fri, 09 Nov 2001 01:08:47 -0000", "Message-ID": "foo"}
+>>> email = EmailMessage('subject', 'content', 'from@example.com', ['to@example.com'], headers=headers)
+>>> email.message().as_string()
+'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: quoted-printable\nSubject: subject\nFrom: from@example.com\nTo: to@example.com\ndate: Fri, 09 Nov 2001 01:08:47 -0000\nMessage-ID: foo\n\ncontent'
+
"""
Please sign in to comment.
Something went wrong with that request. Please try again.