﻿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
28912	EmailMessage.message() should not set a blank To: field when EmailMessage.to is empty	Jon Dufresne	nobody	"`EmailMessage.message()` always sets a `To:` header, see:

https://github.com/django/django/blob/a9e5ac823df8ba8b786b6450c967ca378c008d0e/django/core/mail/message.py#L257

In my project, emails are sent to `Cc:` or `Bcc:` recipients without a `To:` recipient.

Some mail backends are very strict about allowed headers and their values. For example, Amazon Simple Email Service (SES) validates all recipient headers to contain valid email addresses. It fails without delivery if any header contains an invalid address. For some details, see:

https://boto3.readthedocs.io/en/latest/reference/services/ses.html#SES.Client.send_raw_email

> The message must include at least one recipient email address. The recipient address can be a To: address, a CC: address, or a BCC: address. If a recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain ), the entire message will be rejected, even if the message contains other recipients that are valid.

SES considers blank as invalid. When sending an email serialized by `EmailMessage.message()` to `Cc:` or `Bcc:` only addresses, SES fails with an error. `To:` avoid the error, Django can avoid setting the To header when `EmailMessage.to` is empty.
"	Cleanup/optimization	closed	Core (Mail)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
