Django использует только settings.DEFAULT_FROM_EMAIL , когда любая из функций отправки почты передает None
или пустую строку в качестве адреса отправителя . Это можно проверить в django/core/mail.py
.
При наличии необработанного исключения Django вызывает функцию mail_admins()
в django/core/mail.py
, которая всегда использует settings.SERVER_EMAIL и only отправляется по адресам, указанным в settings .ADMINS . Это также можно проверить в django/core/mail.py
.
Единственное другое место, куда сам Django отправляет электронные письма, - это если settings.SEND_BROKEN_LINK_EMAILS True, то CommonMiddleware отправит почту на все адреса, указанные в settings.MANAGERS и e-mail отправитель почты settings.SERVER_EMAIL .
Таким образом, единственный раз, когда обычный пользователь будет получать электронную почту с вашего сайта, это когда вы звоните send_mail()
. Поэтому всегда передавайте реальный адрес в качестве аргумента from_mail
, и вы не допустите, чтобы пользователи получали электронную почту из settings.SERVER_EMAIL или settings.DEFAULT_FROM_EMAIL .
Примечание: django-registration - это, по крайней мере, один пример подключаемого модуля Django, который будет отправлять почту из settings.DEFAULT_FROM_EMAIL , поэтому в таких случаях вам необходимо убедиться, что это правильный адрес электронной почты. например, support@yoursite.com или webmaster@yoursite.com.