Contexto Projeto Django 5.1.6, Python 3.x Sistema de envio de e-mail funcionando em outras views (ex: bug report) View de "esqueci minha senha" carrega o HTML normalmente (GET e POST) Ao submeter o formulário, o POST retorna 200, mas: Não printa nada no terminal (nem print, nem logging) Não envia e-mail (mesmo código de envio funcionando em outra view) Não gera erro, não redireciona, apenas recarrega o template O que já foi testado Limpei cache, reiniciei servidor, troquei de navegador Coloquei prints e logging em todos os pontos da view Coloquei erro proposital (1/0) e nada acontece Testei envio de e-mail manual dentro da view (não envia) Confirmei que o template está correto e o campo email está sendo enviado O mesmo backend SMTP funciona em outra view O arquivo de urls está correto, o include está certo, o template carrega Código Relevante urls.py (do app, ja tenho include no do project) path('forgot-password/', forgot_password, name='forgot_password'), views.py def forgot_password(request): logger.warning('Passei na view! Método: %s', request.method) #Isso não carrega no terminal if request.method == 'POST': send_mail( subject="Teste de envio", message="Funcionou!", from_email=settings.DEFAULT_FROM_EMAIL, recipient_list=[os.getenv("EMAIL_HOST_USER")], fail_silently=False, ) print('Entrei no if POST') email = request.POST.get('email') user = User.objects.filter(email=email).first() if user: print('Usuário encontrado:', user) token = default_token_generator.make_token(user) uid = urlsafe_base64_encode(force_bytes(user.pk)) link = request.build_absolute_uri( reverse('reset_password', kwargs={ 'uidb64': uid, 'token': token}) ) print(token) print(uid) print(link) message = render_to_string('reset_email.html', { 'user': user, 'link': link }) text_content = strip_tags(message) email_content = EmailMultiAlternatives( 'Redefinição de Senha', text_content, settings.DEFAULT_FROM_EMAIL, [user.email]) email_content.attach_alternative(message, 'text/html') email_content.send() messages.success(request,f"Link para redefinição de senha enviado para {email}") return redirect("forgot_password") else: messages.error(request, "Nenhum usuário com este e-mail.") return redirect("forgot_password") return render(request, 'forgot_password.html') template forgot_password.html <form action="{% url 'forgot_password' %}" method="post"> {% csrf_token %} <div class="inputs-labels"> <label for="email" class="label">Email <i class="fa-solid fa-envelope"></i></label> <input type="email" id="email" name="email" class="input" placeholder="Digite seu email" required /> </div> <div class="btn-icon"> <button type="submit" class="form-btn">Enviar Link de Recuperação</button> <i class="fa-solid fa-key"></i> </div> settings.py EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = os.getenv("EMAIL_HOST") EMAIL_PORT = os.getenv("EMAIL_PORT") EMAIL_USE_TLS = os.getenv("EMAIL_USE_TLS") EMAIL_HOST_PASSWORD = os.getenv("EMAIL_HOST_PASSWORD") DEFAULT_FROM_EMAIL = EMAIL_HOST_USER Prints do terminal GET e POST aparecem no log do Django, mas nada do que está dentro da view aparece Nenhum erro é mostrado O que pode ser? View está sendo chamada (template carrega), mas código dentro da função não executa Outras views funcionam normalmente Se alguém já passou por isso ou tem alguma ideia, agradeço! Continue reading...