Не удается отправить электронное письмо, но нет ошибок и исключений

Я работаю над отправкой активационного письма после того, как пользователь зарегистрировал учетную запись. Все работает нормально в консоли. Однако, когда я перехожу на smtp Email backend, программа застревает на send_mail() и затем программа обновляется и отправляет ответ "имя пользователя занято". В итоге ни одно письмо не было отправлено.

Я не думаю, что настройка электронной почты неверна, поскольку программа может отправить ссылку на сброс пароля на любой адрес электронной почты.

Кто-нибудь может мне помочь!!!!!!!!!!! Не стесняйтесь оставлять комментарии!!!!!!

Вот части кода

Спасибо

from django.contrib.auth.models import User, auth
from django.contrib import messages
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.views import View
from django.core.mail import send_mail, BadHeaderError
from django.template.loader import render_to_string
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.contrib.sites.shortcuts import get_current_site
from django.utils.encoding import force_bytes, force_text, DjangoUnicodeDecodeError
from .utils import token_generator
import requests

def send_letter(request, user):
    uidb64= urlsafe_base64_encode(force_bytes(user.pk))
    domain= get_current_site(request).domain
    subject = "Activate your account"
    email_template_name = "activation_email.txt"
    c = {
        "email":user.email,
        'domain': domain,
        'site_name': 'Website',
        "uid": urlsafe_base64_encode(force_bytes(user.pk)),
        "user": user,
        'token': token_generator.make_token(user),
        'protocol': 'http',}
    email2 = render_to_string(email_template_name, c)
    try:
        ####The program will stuck here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        send_mail(subject, email2, 'admin@example.com' , [user.email], fail_silently=False)
    except Exception as ex:
        print(ex)


class RegistrationView(View):
    def get(self, request):
        return render(request, 'register.html')
    def post(self, request):
        username= request.POST['username']
        email= request.POST['email']
        password= request.POST['password']
        print(username, email, password)
        if not User.objects.filter(username=username).exists():
            
            if not User.objects.filter(email=email).exists():
                
                if len(password)<6:
                    
                    messages.error(request, 'password too short')
                    return render(request,'register.html')
                else:
                    
                    user= User.objects.create_user(username= username, email= email)
                    
                    user.set_password(password)
                    
                    user.is_active=False
                    
                    send_letter(request, user)
                    
                    user.save()
                    
                    return render(request, 'TE.html', {'user':user})
            else:
                messages.info(request, 'Email taken')
                return redirect('register')
        else:
            messages.info(request, 'Username taken')
            return redirect('register')
                    
        return render (request, 'register.html')
Вернуться на верх