Django PasswordResetForm не отправляет письма с пользовательским доменом
Я столкнулся с проблемой PasswordResetForm
в Django, когда при указании пользовательского домена не отправляются электронные письма. Ниже приведен метод save
в моей пользовательской форме:
class PasswordResetForm(auth_forms.PasswordResetForm):
"""
This form takes the same structure as its parent from :py:mod:`django.contrib.auth`
"""
def save(self, *args, domain_override=None, request=None, **kwargs):
"""
Generates a one-use only link for resetting password and sends to the
user.
"""
site = get_current_site(request)
if domain_override is not None:
site.domain = site.name = domain_override
for user in self.get_users(self.cleaned_data["email"]):
self.send_password_reset_email(site, user, request)
def send_password_reset_email(self, site, user, request=None):
extra_context = {
"user": user,
"site": site,
"reset_url": get_password_reset_url(user),
"request": request,
}
CustomerDispatcher().send_password_reset_email_for_user(user, extra_context)
Я попытался получить домен из запроса с помощью domain = request.get_host()
, но все равно столкнулся с проблемой.
Дополнительный контекст: Когда в параметре domain_override
указан пользовательский домен, электронные письма пользователям не отправляются. Функция get_current_site
используется для получения текущего сайта на основе запроса. Пользовательский домен корректно извлекается и присваивается переменной site
, но письма по-прежнему не отправляются. Метод send_password_reset_email
отвечает за отправку пользователю письма о сбросе пароля с правильной ссылкой для сброса.
Вопрос: Как я могу обеспечить успешную отправку писем с пользовательским доменом, указанным в domain_override
?