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