【发布时间】:2018-04-15 14:31:57
【问题描述】:
我创建了一个联系表单,以便在用户填写时向我发送电子邮件。一切似乎都正常,但我没有收到电子邮件。
这是我的控制台输出:
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Michael Plemmons
From: mplemmons1982@gmail.com
To: californiamikegreen@yahoo.com
Date: Thu, 02 Nov 2017 22:40:50 -0000
Message-ID: <20171102224050.12741.24539@ubuntu>
hello this is a test
-------------------------------------------------------------------------------
[02/Nov/2017 22:40:50] "POST /contact/ HTTP/1.1" 302 0
[02/Nov/2017 22:40:50] "GET /success/ HTTP/1.1" 200 36
这是views.py
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse, HttpResponseRedirect
from .models import *
from .forms import contact_form
from django.core.mail import send_mail, BadHeaderError
from django.shortcuts import redirect
def contact(request):
if request.method == 'GET':
form = contact_form()
else:
form = contact_form(request.POST)
if form.is_valid():
contact_name = form.cleaned_data['contact_name']
contact_email = form.cleaned_data['contact_email']
contact_message = form.cleaned_data['contact_message']
try:
send_mail(contact_name, contact_message, contact_email, ['californiamikegreen@yahoo.com'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('success')
return render(request, "contact.html", {'form': form})
def success(request):
return HttpResponse('Success! Thank you for your message.')
这是 urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'contact/$',views.contact, name='contact'),
url(r'^success/$', views.success, name='success'),
]
这是forms.py
from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User
class contact_form(forms.Form):
contact_name = forms.CharField(label='Contact Name', max_length=255)
contact_email = forms.CharField(label='Contact Email',max_length=255)
contact_message = forms.CharField(
required=True,
widget=forms.Textarea
)
和contact.html
{% block title %}Contact - {{ block.super }}{% endblock %}
{% block content %}
<h1>Contact</h1>
<form role="form" action="" method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Submit</button>
</form>
{% endblock %}
这包含在 settings.py 中
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
我有什么遗漏的东西才能真正发送到我的电子邮件吗?
谢谢
【问题讨论】:
标签: python django email contact-form