Почему мои настройки электронной почты в django не отправляют уведомления по электронной почте? - PullRequest
0 голосов
/ 17 февраля 2019

Я создал страницу регистрации, которая отправляет уведомление по электронной почте об успешной регистрации.У меня есть уведомление по электронной почте.Но, похоже, он не работает и не выдает никаких ошибок.Ниже приведен фрагмент кода.

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')

Ниже приведены мои 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.sahay@gmail.com'
EMAIL_HOST_PASSWORD = '123'
DEFAULT_FROM_EMAIL = 'ami.sahay@gmail.com'

Я просмотрел несколько сообщений Stackoverflow и сделалнекоторые изменения как предложено.Но они, похоже, не имеют никакого эффекта.Ниже приведена одна из ссылок.

Django не отправляет уведомления по электронной почте

...