Skip to content

Instantly share code, notes, and snippets.

@chriskavanagh
Created November 15, 2016 08:07
Show Gist options
  • Save chriskavanagh/eea04df2cc6d7c2eb1efb04199608bb1 to your computer and use it in GitHub Desktop.
Save chriskavanagh/eea04df2cc6d7c2eb1efb04199608bb1 to your computer and use it in GitHub Desktop.
Django send_mail with token and uuid.
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