【发布时间】:2015-09-15 13:05:02
【问题描述】:
我写了一个通过 django 发送邮件的应用程序
models.py
from django.db import models
from django import forms
class EmailForm(forms.Form):
firstname = forms.CharField(max_length=255)
lastname = forms.CharField(max_length=255)
email = forms.EmailField()
subject = forms.CharField(max_length=255)
botcheck = forms.CharField(max_length=5)
message = forms.CharField()
views.py
from django.views.generic.base import TemplateView
from django.http import HttpResponseRedirect
from django.core.mail import send_mail, BadHeaderError
from models import EmailForm
from django.shortcuts import render
def sendmail(request):
if request.method == 'POST':
form = EmailForm(request.POST)
if form.is_valid():
firstname = form.cleaned_data['firstname']
lastname = form.cleaned_data['lastname']
email = form.cleaned_data['email']
subject = form.cleaned_data['subject']
botcheck = form.cleaned_data['botcheck'].lower()
message = form.cleaned_data['message']
if botcheck == 'yes':
try:
fullemail = firstname + " " + lastname + " " + "<" + email + ">"
send_mail(subject, message, email, ['myemail@gmail.com'], fail_silently=False)
return HttpResponseRedirect('/email/thankyou/')
except:
return HttpResponseRedirect('/email/')
else:
return HttpResponseRedirect('/email/')
else:
return HttpResponseRedirect('/email/')
当
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
它显示在控制台中。
但是当
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
它没有将电子邮件发送给指定的用户。 我的 settings.py 文件
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'localhost'
EMAIL_PORT = '8000'
如何发送电子邮件?
【问题讨论】:
-
谢谢。我会试试的。如果我没有明确说明其他人是如何理解的?
-
帮我解决一下。
-
@susmitha 如果您根本没有指定 smtp 服务器,那么电子邮件将如何到达收件箱?
-
见this。