from django.contrib.auth.tokens import default_token_generator
from django.contrib.auth import get_user_model
from django.core.mail import send_mail
from django.shortcuts import render, redirect
def send_verification_email(request, user):
token = default_token_generator.make_token(user)
verify_url = request.build_absolute_uri(f'/verify/{user.pk}/{token}/')
subject = 'Verify your email'
message = f'Hello {user.username}, please click the link below to verify your email:\n\n{verify_url}'
send_mail(subject, message, 'sender@example.com', [user.email])
return redirect('verification_sent')
def verify_email(request, user_pk, token):
user = get_user_model().objects.get(pk=user_pk)
if default_token_generator.check_token(user, token):
user.is_active = True
user.save()
return redirect('verification_success')
else:
return redirect('verification_error')