diff --git a/django/core/mail.py b/django/core/mail.py index 9ccf7a4d84..6a45b46587 100644 --- a/django/core/mail.py +++ b/django/core/mail.py @@ -245,7 +245,7 @@ class EmailMessage(object): else: msg.attach(self._create_attachment(*attachment)) msg['Subject'] = self.subject - msg['From'] = self.from_email + msg['From'] = self.extra_headers.pop('From', self.from_email) msg['To'] = ', '.join(self.to) # Email header names are case-insensitive (RFC 2045), so we have to diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py index 4317a66b79..40e2f7665f 100644 --- a/tests/regressiontests/mail/tests.py +++ b/tests/regressiontests/mail/tests.py @@ -88,4 +88,11 @@ BadHeaderError: Header values can't contain newlines (got u'Subject\nInjection T >>> settings.ADMINS = old_admins >>> settings.MANAGERS = old_managers +# Make sure we can manually set the From header (#9214) + +>>> email = EmailMessage('Subject', 'Content', 'bounce@example.com', ['to@example.com'], headers={'From': 'from@example.com'}) +>>> message = email.message() +>>> message['From'] +'from@example.com' + """