#36138: Simplify ADMINS and MANAGERS email list settings
------------------------------+--------------------------------------
Reporter: Mike Edmunds | Owner: (none)
Type: New feature | Status: new
Component: Core (Mail) | Version: 5.1
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
------------------------------+--------------------------------------
Changes (by Mike Edmunds):
* resolution: wontfix =>
* status: closed => new
Old description:
> Django should allow the
> [https://docs.djangoproject.com/en/5.1/ref/settings/#std-setting-ADMINS
> ADMINS] and [https://docs.djangoproject.com/en/5.1/ref/settings/#managers
> MANAGERS] settings to be simple lists of email addresses, like this:
>
> {{{#!python
> # Doesn't work in Django through 5.2:
> ADMINS = ["[email protected]", "[email protected]"]
> }}}
>
> Right now, those settings both expect a list of tuples of (full name,
> email address). But the name part ''is ignored'' in both
> [https://github.com/django/django/blob/main/django/core/mail/__init__.py#L134
> mail_admins()] and
> [https://github.com/django/django/blob/330d89d4fe7832355535580383523f1749a3ee45/django/core/mail/__init__.py#L154
> mail_managers()]—and it's
> [https://github.com/django/django/blob/ed114e15106192b22ebb78ef5bf5bce72b419d13/django/core/mail.py#L43-L51
> been ignored] for at least 20 years (as far back as the Git history
> goes):
>
> {{{#!python
> ADMINS = [("name is ignored", "[email protected]"), ("ignored",
> "[email protected])]
> }}}
>
> #30604 added an error on detecting the (reasonable) mistake of trying to
> set ADMINS or MANAGERS to a simple list of addresses as in first example.
>
> This ticket proposes instead allowing—and documenting—simple address
> lists in these settings. For compatibility, Django would also continue to
> support the list-of-tuples form (with the name field ignored).
>
> Incidentally, if you ''do'' want to include a display-name in the
> admins/managers recipients lists, that can be done with the RFC 5322
> `"name" <addr>` format (which is accepted by all the django.core.mail
> APIs):
>
> {{{#!python
> # Works in Django 5.2 and earlier:
> ADMINS = [
> ("ignored", "John <[email protected]>"),
> ("ignored", '"Mary, IT (Ops)" <[email protected]>'),
> ]
>
> # Also allowed after this proposed change:
> ADMINS = [
> "John <[email protected]>",
> '"Mary, IT (Ops)" <[email protected]>',
> ]
> }}}
New description:
Django should allow the
[https://docs.djangoproject.com/en/5.1/ref/settings/#std-setting-ADMINS
ADMINS] and [https://docs.djangoproject.com/en/5.1/ref/settings/#managers
MANAGERS] settings to be simple lists of email addresses, like this:
{{{#!python
# Doesn't work in Django through 5.2:
ADMINS = ["[email protected]", "[email protected]"]
}}}
Right now, those settings both expect a list of tuples of (full name,
email address). But the name part ''is ignored'' in both
[https://github.com/django/django/blob/main/django/core/mail/__init__.py#L134
mail_admins()] and
[https://github.com/django/django/blob/330d89d4fe7832355535580383523f1749a3ee45/django/core/mail/__init__.py#L154
mail_managers()]—and it's
[https://github.com/django/django/blob/ed114e15106192b22ebb78ef5bf5bce72b419d13/django/core/mail.py#L43-L51
been ignored] for at least 20 years (as far back as the Git history goes):
{{{#!python
ADMINS = [("name is ignored", "[email protected]"), ("ignored",
"[email protected])]
}}}
#30604 added an error on detecting the (reasonable) mistake of trying to
set ADMINS or MANAGERS to a simple list of addresses as in first example.
This ticket proposes instead allowing—and documenting—simple address lists
in these settings. For compatibility __during a standard deprecation
period__, Django would also continue to support the list-of-tuples form
(with the name field ignored). __After deprecation, tuples would raise an
error.__ [Edits: deprecated tuples, based on forum discussion.]
Incidentally, if you ''do'' want to include a display-name in the
admins/managers recipients lists, that can be done with the RFC 5322
`"name" <addr>` format (which is accepted by all the django.core.mail
APIs):
{{{#!python
# Works in Django 5.2 and earlier:
ADMINS = [
("ignored", "John <[email protected]>"),
("ignored", '"Mary, IT (Ops)" <[email protected]>'),
]
# Also allowed after this proposed change:
ADMINS = [
"John <[email protected]>",
'"Mary, IT (Ops)" <[email protected]>',
]
}}}
--
Comment:
Reopened, deprecating the tuples, based on forum feedback.
--
Ticket URL: <https://code.djangoproject.com/ticket/36138#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/01070194be01a17e-b78781a4-2414-4de0-aa99-bd22063b9fb0-000000%40eu-central-1.amazonses.com.