Skip to content

Commit 3305245

Browse files
committed
[1.1.X] Fixed #13259 -- Ensure that multiple calls to message() don't corrupt any extra message headers. Thanks to canburak for the report, and Andi Albrecht for the fix.
Backport of r12901 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12902 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent fa11430 commit 3305245

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

django/core/mail.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ def message(self):
249249
self.content_subtype, encoding)
250250
msg = self._create_message(msg)
251251
msg['Subject'] = self.subject
252-
msg['From'] = self.extra_headers.pop('From', self.from_email)
252+
msg['From'] = self.extra_headers.get('From', self.from_email)
253253
msg['To'] = ', '.join(self.to)
254254

255255
# Email header names are case-insensitive (RFC 2045), so we have to
@@ -260,6 +260,8 @@ def message(self):
260260
if 'message-id' not in header_names:
261261
msg['Message-ID'] = make_msgid()
262262
for name, value in self.extra_headers.items():
263+
if name.lower() == 'from':
264+
continue
263265
msg[name] = value
264266
return msg
265267

tests/regressiontests/mail/tests.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,16 @@
9595
>>> message['From']
9696
9797
98+
# Regression for #13259 - Make sure that headers are not changed
99+
# when calling EmailMessage.message()
100+
>>> email = EmailMessage('Subject', 'Content', '[email protected]', ['[email protected]'], headers={'From': '[email protected]'})
101+
>>> message = email.message()
102+
>>> message['From']
103+
104+
>>> message = email.message()
105+
>>> message['From']
106+
107+
98108
# Regression for #11144 - When a to/from/cc header contains unicode,
99109
# make sure the email addresses are parsed correctly (especially
100110
# with regards to commas)

0 commit comments

Comments
 (0)