Почему я не могу отправить электронное письмо пользователю для проверки завершения регистрации в django webapp

я хочу отправить пользователю письмо с подтверждением успешной регистрации вместо того, чтобы отправить шаблон письма, который отображается в моем терминале и не отправляется на email пользователя. вот мой код для регистрации пользователя мой views.py

class SignUpView(View):
    form_class = SignUpForm
    template_name = 'register.html'

    def get(self, request, *args, **kwargs):
        form = self.form_class()
        return render(request, self.template_name, {'form': form})

    def post(self, request, *args, **kwargs):
        form = self.form_class(request.POST)
        if form.is_valid():

            user = form.save(commit=False)
            user.is_active = False # Deactivate account till it is confirmed
            user.save()

            current_site = get_current_site(request)
            subject = 'Activate Your MySite Account'
            message = render_to_string('account_activation_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            user.email_user(subject, message)

            messages.success(request, ('Please Confirm your email to complete registration.'))

            return render( request, 'activation_sent_success.html')

        return render(request, self.template_name, {'form': form})

class ActivateAccount(View):

    def get(self, request, uidb64, token, *args, **kwargs):
        try:
            uid = force_text(urlsafe_base64_decode(uidb64))
            user = User.objects.get(pk=uid)
        except (TypeError, ValueError, OverflowError, User.DoesNotExist):
            user = None

        if user is not None and account_activation_token.check_token(user, token):
            user.is_active = True
            user.profile.email_confirmed = True
            user.save()
            login(request, user)
            messages.success(request, ('Your account have been confirmed.'))
            return redirect('accounts:home')
        else:
            messages.warning(request, ('The confirmation link was invalid, possibly because it has already been used.'))
            return redirect('accounts:home')

 

мой файл tokens.py для генерирования случайного токена

from django.contrib.auth.tokens import PasswordResetTokenGenerator
    from django.utils import six
    
    class AccountActivationTokenGenerator(PasswordResetTokenGenerator):
        def _make_hash_value(self, user, timestamp):
            return (
                six.text_type(user.pk) + six.text_type(timestamp) +
                six.text_type(user.profile.email_confirmed)
            )
    
    account_activation_token = AccountActivationTokenGenerator()

my settings.py

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'shreyashmishra1598@gmail.com'
EMAIL_HOST_PASSWORD = '********'
EMAIL_PORT = 587

in bottom
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

любое предложение будет оценено по достоинству спасибо

Вернуться на верх