Ответ 1
Django использует только settings.DEFAULT_FROM_EMAIL, когда любая из функций отправки почты проходит None
или пустую строку в качестве адреса отправителя. Это можно проверить в django/core/mail.py
.
Когда есть необработанное исключение, Django вызывает функцию mail_admins()
в django/core/mail.py
, которая всегда использует settings.SERVER_EMAIL и только, отправленную по адресам, указанным в settings.ADMINS. Это также можно проверить в django/core/mail.py
.
Единственное другое место, которое Django отправляет по электронной почте, это если settings.SEND_BROKEN_LINK_EMAILS - True, то CommonMiddleware отправит почту всем адресам, указанным в настройках . MANAGERS и отправитель электронной почты имеет settings.SERVER_EMAIL.
Следовательно, единственный раз, когда обычный пользователь будет получать электронную почту с вашего сайта, вы вызываете send_mail()
. Таким образом, всегда передавайте реальный адрес в качестве аргумента from_mail
, и вы избегаете использования пользователями электронной почты из settings.SERVER_EMAIL или . DEFAULT_FROM_EMAIL.
Боковое примечание: django-registration - это хотя бы один пример подключаемого Django, который будет отправлять почту из настроек .DEFAULT_FROM_EMAIL, поэтому в таких случаях вам нужно убедиться, что это правильный адрес электронной почты адрес, такой как [email protected] или [email protected]