Доброго дня. Не получается настроить отправку писем с помощью стандартной формы обратной связи. Все вроде сделано как прописано в доках, но даже не могу отследить в чем запарка, письма не приходят. Пробовал через gmail и через SendGrid. Ошибок нет никаких.
admins.py
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'user_nik'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
views.py
from django.shortcuts import render
from content.forms import ContactForm
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
# Если форма заполнена корректно, сохраняем все введённые пользователем значения
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
copy = form.cleaned_data['copy']
recepients = ['myemail@gmail.com']
# Если пользователь захотел получить копию себе, добавляем его в список получателей
if copy:
recepients.append(email)
try:
send_mail(name, message, email, recepients, fail_silently=False)
except BadHeaderError: #Защита от уязвимости
return HttpResponse('Invalid header found')
else:
form = ContactForm()
return render(request, 'contact.html', {'form': form})
contact.html
<form method="POST">
{% csrf_token %}
{# {% bootstrap_form form %}#}
{{ form.non_field_errors }}
<div>
<label for="id_subject">Тема:</label>
{{ form.subject.errors }}
{# {{ form.subject }}#}
<input class="form-control" id="id_subject" name="subject" placeholder="Тема">
</div>
<div>
<label for="id_sender">E-mail:</label>
{{ form.sender.errors }}
{# {{ form.sender }}#}
<input class="form-control" id="id_sender" name="sender" placeholder="Ваш e-mail">
</div>
<div>
<label for="id_message">Сообщение:</label>
{{ form.message.errors }}
{# {{ form.message }}#}
<textarea class="form-control" id="id_message" name="message" placeholder="Введите ваше сообщение"></textarea>
</div>
<div>
{{ form.copy.errors }}
<label for="id_copy">{{ form.copy }} Отправить копию себе </label>
</div>
<br>
<input type="submit" class="btn btn-success" value="Отправить сообщение"/>
</form>
Updated 22 Aug. 2017, 11:09 by lepiloff.