Сделал контактную форму, вроде бы, все работает, в консоли получаю нужную форму, но на почту она не приходит. Пробовал с разными почтовым ящиками: яндекс, gmail.
Для gmail в settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'test@gmail.com'
EMAIL_HOST_PASSWORD = 'test'
DEFAULT_FROM_EMAIL = 'test.ru'
DEFAULT_TO_EMAIL = 'mail@test.ru'
Пробовал DisplayUnlockCaptcha для gmail - не помогло. Может нужно как-то настроить свой почтовый ящик?
views.py
def emailView(request):
if request.method == 'GET':
form = SignupForm()
else:
form = SignupForm(request.POST)
if form.is_valid():
email_subject = 'test.RU :: Запись на занятие '
email_body = "С сайта test.ru отправлено новое сообщение\n\n" \
"Имя отправителя: %s \n" \
"Фамилия отправителя: %s \n" \
"Контактный телефон: %s \n" \
"Фамилия и имя ребенка: %s \n" \
"Возраст ребенка: %s \n" \
"E-mail отправителя: %s \n\n" \
"Дополнительно: \n" \
"%s " % \
(form.cleaned_data['name'], form.cleaned_data['surname'], form.cleaned_data['tel'], form.cleaned_data['kid_name'], form.cleaned_data['kid_age'], form.cleaned_data['email'], form.cleaned_data['message'])
# Положим копию письма в базу данных
SignupModel.objects.create(name=form.cleaned_data['name'], surname=form.cleaned_data['surname'], tel=form.cleaned_data['tel'], kid_name=form.cleaned_data['kid_name'], kid_age=form.cleaned_data['kid_age'], email=form.cleaned_data['email'], message=form.cleaned_data['message'])
try:
send_mail(email_subject, email_body, settings.EMAIL_HOST_USER, ['test@gmail.com'], fail_silently=False)
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('signup_thx')
return render(request, 'signup/signup.html', {'form': form})
def successView(request):
return render(request, 'signup/signup_thx.html')