diff --git a/django/core/mail.py b/django/core/mail.py index 58588bf712..157474ff2c 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 c2c084c4c6..083840f45e 100644 --- a/tests/regressiontests/mail/tests.py +++ b/tests/regressiontests/mail/tests.py @@ -60,4 +60,11 @@ BadHeaderError: Header values can't contain newlines (got u'Subject\nInjection T >>> 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' +# 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' + """