I have created a registration page that sends an email notification on 
successful registration. I do have my email notification in place. But it 
doesn't seem to be working, neither it is throwing any error. Below is the code 
snippet.

views.py
def register(request):
    validators = [MinimumLengthValidator, NumberValidator, UppercaseValidator]
    if request.method == 'POST':
        first_name = request.POST['first_name']
        last_name = request.POST['last_name']
        email = request.POST['email']
        username = request.POST['username']
        password = request.POST['password']
        try:
            for validator in validators:
                validator().validate(password)
        except ValueError as e:
            messages.error(request, str(e))
            return redirect('register')
        password2 = request.POST['password2']

        # check if the password match
        if password == password2:

            if User.objects.filter(username=username).exists():
                messages.error(request, 'username already exist')
                return redirect('register')
            else:
                if User.objects.filter(email=email).exists():
                    messages.error(request, 'Registration Failed - Try 
different email address')
                    return redirect('register')
                else:
                    user = User.objects.create_user(username=username, 
password=password, email=email,
                                                    first_name=first_name, 
last_name=last_name)
                    user.save()
                    messages.success(request, 'Registration complete, please 
proceed to login')
                    return redirect('register')
        else:
            messages.error(request, 'password dose not match')
            return redirect('register')
    else:
        return render(request, 'ACCOUNTS/register.html')


def ThankYou(request, register):
    if request.method == 'POST':
        if register.is_valid():
                save_it = register.save(commit=False)
                save_it.save()
                subject = 'Registration successful'
                message = 'Thank you for registration, please continue with the 
login'
                from_email = settings.EMAIL_HOST_USER
                to_list = [save_it.email, settings.EMAIL_HOST_USER]
                try:
                    send_mail(
                        subject,
                        message,
                        from_email,
                        [to_list],
                        fail_silently=False,
                    )
                except ValueError:
                    return HttpResponse('Invalid header found.')
        else:
            messages.success(request, 'thank you ')
            return redirect('register')
    else:
        return redirect('index')
Below is my settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'ami.sa...@gmail.com'
EMAIL_HOST_PASSWORD = '123'
DEFAULT_FROM_EMAIL = 'ami.sa...@gmail.com'
I have gone through a couple of Stackoverflow posts and made some changes as 
suggested. But they do not seem to have any effect. Below is one of the link.

Django Doesn't Send Email Notifications
Regards,
Amitesh Sahay91-750 797 8619

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/1493971974.505339.1550394996512%40mail.yahoo.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to