25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
from django.core.mail import EmailMultiAlternatives
|
|
from django.conf import settings
|
|
from django.urls import reverse
|
|
from django.utils.http import urlsafe_base64_encode
|
|
from django.utils.encoding import force_bytes
|
|
from django.contrib.auth.tokens import default_token_generator
|
|
|
|
from django.template.loader import render_to_string
|
|
|
|
def send_password_reset_email(user, request):
|
|
token = default_token_generator.make_token(user)
|
|
uid = urlsafe_base64_encode(force_bytes(user.pk))
|
|
# Enlace directo al frontend
|
|
reset_link = f"https://efc-aduanasoft.com/user/password-reset-confirm/{uid}/{token}/"
|
|
subject = 'Recuperación de contraseña'
|
|
context = {
|
|
'username': user.username,
|
|
'reset_link': reset_link,
|
|
}
|
|
text_content = f'Hola {user.username},\nPara restablecer tu contraseña haz clic en el siguiente enlace: {reset_link}'
|
|
html_content = render_to_string('email/password_reset_email.html', context)
|
|
email = EmailMultiAlternatives(subject, text_content, settings.DEFAULT_FROM_EMAIL, [user.email])
|
|
email.attach_alternative(html_content, "text/html")
|
|
email.send(fail_silently=False)
|