Created
November 15, 2016 08:07
-
-
Save chriskavanagh/eea04df2cc6d7c2eb1efb04199608bb1 to your computer and use it in GitHub Desktop.
Django send_mail with token and uuid.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def send_email(request): | |
User = get_user_model() | |
if request.method == 'POST': | |
form = EmailTestForm(request.POST) | |
if form.is_valid(): | |
email = form.cleaned_data['email'] | |
user = User.objects.get(email=email) | |
to_email = form.cleaned_data['email'] # cd['email'] | |
subject = 'email test' | |
from_email = settings.EMAIL_HOST_USER | |
domain = Site.objects.get_current().domain | |
context = { | |
'uuid64': urlsafe_base64_encode(force_bytes(user.pk)), | |
'token': default_token_generator.make_token(user), | |
'user': user, | |
'domain':domain, | |
} | |
email = loader.render_to_string('email_text.html', context) | |
send_mail(subject, email, from_email, [to_email], fail_silently=False) | |
return redirect('login') | |
else: | |
form = EmailTestForm() | |
context = {'form':form} | |
return render(request, 'send_mail.html', context) | |
def test_email_confirm(request, uuid64=None, token=None): | |
User = get_user_model() | |
try: | |
uid = urlsafe_base64_decode(uuid64) | |
user = User.objects.get(pk=uid) | |
except (TypeError, ValueError, UserModel.DoesNotExist): | |
user = None | |
if user == None: | |
return redirect('register') | |
if user is not None and default_token_generator.check_token(user, token): | |
return redirect('login') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment