Opened 4 years ago
Last modified 4 years ago
#33498 closed Uncategorized
Email TO: field unusual behavior of changing the input, can lead to errors — at Initial Version
| Reported by: | Michael | Owned by: | nobody | 
|---|---|---|---|
| Component: | Core (Mail) | Version: | 4.0 | 
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
This code will generate a 500 error instead of sending an email about the 404 error (the problem is the TO field). It's a hard to error to find due to no stack trace, had to binary search a lot of code to find it (cause it works fine with console email backend (i.e during dev)):
    from django.core.mail import send_mail
    send_mail(
        f'Suspicious file requested from {client_ip} for {path}',
        f'Suspicious file requested from {client_ip}.\nURL: {absolute_url}',
        '"Notifications" <error@example.com>',
        [Cfg.EMAIL_SUPPORT],
        fail_silently=True,
    )
If one emoves the double quotes:
    send_mail(
        f'Suspicious file requested from {client_ip} for {path}',
        f'Suspicious file requested from {client_ip}.\nURL: {absolute_url}',
        'Notifications <error@example.com>',
        [Cfg.EMAIL_SUPPORT],
        fail_silently=True,
    )
Then the from field in gmail is:
'Notifications' via support <support@example.com>
Which is not what it was set to. The person's name was set to Notifications not 'Notifications' via support, and the from email address was set to error@example.com not support@example.com
This is my settings.py:
SERVER_EMAIL = f'support@example.com'  # The reply to
DEFAULT_FROM_EMAIL = somebody@example.com'
ADMINS = [('Support', 'support@example.com')]
MANAGERS = ADMINS
EMAIL_SUBJECT_PREFIX = "Example Server: "
THe documentation says:
from_email: A string. If None, Django will use the value of the DEFAULT_FROM_EMAIL setting.
It does not specify this unusual behavior.