Author: russellm
Date: 2010-04-01 10:25:54 -0500 (Thu, 01 Apr 2010)
New Revision: 12902

Modified:
   django/branches/releases/1.1.X/django/core/mail.py
   django/branches/releases/1.1.X/tests/regressiontests/mail/tests.py
Log:
[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.

Modified: django/branches/releases/1.1.X/django/core/mail.py
===================================================================
--- django/branches/releases/1.1.X/django/core/mail.py  2010-04-01 15:16:26 UTC 
(rev 12901)
+++ django/branches/releases/1.1.X/django/core/mail.py  2010-04-01 15:25:54 UTC 
(rev 12902)
@@ -249,7 +249,7 @@
                            self.content_subtype, encoding)
         msg = self._create_message(msg)
         msg['Subject'] = self.subject
-        msg['From'] = self.extra_headers.pop('From', self.from_email)
+        msg['From'] = self.extra_headers.get('From', self.from_email)
         msg['To'] = ', '.join(self.to)
 
         # Email header names are case-insensitive (RFC 2045), so we have to
@@ -260,6 +260,8 @@
         if 'message-id' not in header_names:
             msg['Message-ID'] = make_msgid()
         for name, value in self.extra_headers.items():
+            if name.lower() == 'from':
+                continue
             msg[name] = value
         return msg
 

Modified: django/branches/releases/1.1.X/tests/regressiontests/mail/tests.py
===================================================================
--- django/branches/releases/1.1.X/tests/regressiontests/mail/tests.py  
2010-04-01 15:16:26 UTC (rev 12901)
+++ django/branches/releases/1.1.X/tests/regressiontests/mail/tests.py  
2010-04-01 15:25:54 UTC (rev 12902)
@@ -95,6 +95,16 @@
 >>> message['From']
 '[email protected]'
 
+# Regression for #13259 - Make sure that headers are not changed
+# when calling EmailMessage.message()
+>>> email = EmailMessage('Subject', 'Content', '[email protected]', 
['[email protected]'], headers={'From': '[email protected]'})
+>>> message = email.message()
+>>> message['From']
+'[email protected]'
+>>> message = email.message()
+>>> message['From']
+'[email protected]'
+
 # Regression for #11144 - When a to/from/cc header contains unicode,
 # make sure the email addresses are parsed correctly (especially
 # with regards to commas)

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to