﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
9214	Allow different `MAIL FROM` or `Return-Path`  and `From` headers.	Tai Lee	nobody	"Currently, `EmailMessage.message` sets the `From` header to match the `from_email` argument in `EmailMessage.__init__`. This value is also passed as the `from_addr` argument to `smtplib.SMTP.sendmail`, which specifies the `MAIL FROM` or `Return-Path` header.

This makes it impossible to specify a `MAIL FROM` or `Return-Path` header that is different to the `From` header. This can be a requirement for [http://en.wikipedia.org/wiki/VERP VERP] or other list / bounce management, and also makes it impossible to set a valid `From` header with multiple identities.

[http://www.ietf.org/rfc/rfc2822.txt RFC2822] states that the `From` header specifies the author(s) of the message (those responsible for the writing of the message), who are not necessarily responsible for sending or delivery of the message. The `MAIL FROM` or `Return-Path` headers should refer to a single identity, who is responsible for the delivery of the message. This is where bounce messages will go.

I propose that the cleanest solution to this is to change the relevant line from `EmailMessage.message` to get the `From` header from `self.extra_headers` if it exists, and fallback to `self.from_email` as the default.

This should be entirely backwards compatible, and will allow users to override the `From` header either for bounce / list management, or to list multiple authors. Currently, if a `From` header is passed in the `headers` argument, the resulting message simply contains two `From` headers, which could yield unexpected results.

This change is important for anyone operating a mailing list, a subscription based email newsletter, or sending any email on behalf of their users or another 3rd party if they want to adhere to anti-SPAM requirements and best practices, e.g. SPF and Sender ID records, catching and removing subscribers who have sent bounce messages, etc.
"		closed	Core (Mail)	dev		fixed	EmailMessage Return-Path From	ross@…	Unreviewed	1	0	0	0	0	0
