#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.

Reply via email to