Прежде всего, вы упомянули, что используете django-rest-auth
, что не так, и, вероятно, вы используете django-allauth
.
Согласно документации django-allauth
:
ACCOUNT_EMAIL_VERIFICATION :
Если установлено «обязательное», пользователь блокируется для входа в систему до проверки адреса электронной почты. Выберите «опционально» или «нет», чтобы разрешить вход в систему с непроверенным адресом электронной почты. В случае «опционально», электронное письмо с подтверждением по-прежнему отправляется, тогда как в случае «нет» письма с подтверждением по электронной почте не отправляются.
Таким образом, о пересылке ничего не упоминается. отправка письма с подтверждением, если срок действия первого истек. Для достижения sh того, что вы хотите, у вас должен быть запущен скрипт job
, проверяющий токены expired
и повторно отправляющий письма с подтверждением вручную.
Вы должны создать скрипт, который будет выглядеть примерно так: this:
from time import sleep
from django.utils import timezone
from django_allauth.account.models import EmailConfirmation
while True:
def_expired = timezone.now() - datetime.timedelta(days=app_settings.EMAIL_CONFIRMATION_EXPIRE_DAYS)
expired_tokens = EmailConfirmation.objects.filter(sent__lte=def_expired)
for token in expired_tokens:
token.send()
sleep(2)
И продолжайте работу этого скрипта, используя любой планировщик, который вам нравится (supervisor
, pm2
, cronjob
, et c).
Нижняя строка, django-allauth
не имеет / не может иметь нужную вам функциональность. Эту работу необходимо выполнить вручную.