Как отправить информацию на мою электронную почту из формы django? - Джанго 2 - PullRequest
0 голосов
/ 10 января 2019

Как отправить информацию на мою электронную почту из формы django. Теперь я могу видеть информацию только в выводе моей консоли на моем cmd

шаблон:

{% extends 'base.html' %}
{% load widget_tweaks %}

{% block title %}
    Contact Us
{% endblock %}

{% block content %}

<h2 class="mt-4 ml-4">Contact Me</h2>
<form method="post">
<div class="container mt-4">
    {% csrf_token %}
   <div class="col-md-4">
        {{ form.subject.label }}
        {% render_field form.subject class+="form-control" %}
   </div>
   <div class="col-md-4">
        {{ form.email.label }}
        {% render_field form.email type="email" class+="form-control" %}
   </div>
   <div class="col-md-4">
        {{ form.message.label }}
        {% render_field form.message class+="form-control" rows="4" cols="6" %}
   </div>
   <div class="form-actions">
      <button type="submit" class="btn btn-primary mt-2 ml-3">Send</button>
   </div>
</div>
</form>

{% endblock %}

forms.py:

from django import forms

class ContactForm(forms.Form):
    email = forms.EmailField(required=True)
    subject = forms.CharField(required=True)
    message = forms.CharField(widget=forms.Textarea, required=False)

views.py:

from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from .forms import ContactForm

def emailView(request):
    if request.method == 'GET':
        form = ContactForm()
    else:
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            try:
                send_mail(subject, message, email, ['yarik.nashivan@gmail.com'])
            except BadHeaderError:
                return HttpResponse('Invalid header found.')
            return redirect('success')
    return render(request, "email.html", {'form': form})

def successView(request):
    return HttpResponse('Success! Thank you for your message. <p>You will be redirected to the main page in 3 seconds.</p> <meta http-equiv="refresh" content="3;url=/"> ')

Не смотрите на это: fgkjdfldfjgndfkgndfskj vdafk kjdsjaf jjjfd jdsaf dj fdsjn dnjndfj jdffjk hdsffdfgfdb sfdf

1 Ответ

0 голосов
/ 10 января 2019

Ну, вы используете консольный бэкэнд , поэтому вы видите сообщение в консоли. Если вы используете SMTP backend , вы можете отправить это письмо на ваш счет. Для этого вам нужно настроить так:

Сначала необходимо обновить бэкэнд в settings.py:

.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

Затем обновите настройки smtp в settings.py:

# this configuration is for gmail
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'test@gmail.com'
EMAIL_HOST_PASSWORD = 'test'
EMAIL_PORT = 587

Подробнее см. В документации по электронной почте для Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...