писав форму в вьюсі тому що я робив на від*бись. погугліть смтп гмейлу
# For mail
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from django import forms
# Create your views here.
class ContactForm(forms.Form):
subject = forms.CharField(max_length = 100,widget = forms.TextInput
(attrs = {'class': 'form-control','autocomplete':'off','placeholder':"Як до вас можна звертатись ?"}))
email = forms.EmailField(widget = forms.TextInput
(attrs = {'class': 'form-control','type':'email','autocomplete':'off','placeholder':"Ваша скринька email"}))
message = forms.CharField(widget = forms.Textarea(attrs = {'class': 'form-control','placeholder':"Питання які у вас залишились ? "}))
def contact_view(request):
if request.method == 'POST':
form = ContactForm(request.POST)
#Форма чотка зберігаєм данні
if form.is_valid():
subject = form.cleaned_data['subject']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
# На яку пошту треба відправляти.
recipients = ['444444444444@gmail.com']
# В кіцні меседжа
message += u'\n Відправник :' + email
try:
send_mail(subject, message, '44444444444@gmail.com', recipients)
except BadHeaderError: #Захист
return HttpResponse('Invalid header found')
#Переходим бо відправило
return render(request, 'index.html')
else:
#заповняєм форму
form = ContactForm()
#відправляєм форму на сторінку
return render(request, 'contacts.html', {'form': form})
темплейт
<form role="form" action="/contacts" class="contact-form" method="post">{% csrf_token %}
<div class="col-md-6">
<div class="form-group">
{{ form.subject }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ form.email }}
</div>
</div>
<div class="col-md-12">
<div class="form-group">
{{ form.message }}
</div>
</div>
<div class="col-md-12 ">
<button type="submit" class="btn btn-xl btn-primary center-block">Відправити повідомлення</button>
</div>
</form>
Налаштування
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '444444444444444@gmail.com'
EMAIL_HOST_PASSWORD = '44444444444444'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = '4444444444444444'