Django 发送email配置详解及各种错误类型
跟随Django Book的内容发送邮件不成功,总结一下需要配置好settings.py文件,还要注意一些细节。
1、在settings文件最后添加以下内容,缺一不可!
EMAIL_HOST= 'smtp.163.com'
EMAIL_PORT= 25
EMAIL_HOST_USER = 'xxxxxx@163.com'(你有163邮箱的话)
EMAIL_HOST_PASSWORD = ‘xxxxxxx'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
这里Host邮箱最好还是写163的,qq的我试过不行,别的也不敢保证可以。如果出现“STARTTLS extension not supported by server”这种错误类型很有可能是邮箱不支持。
2、出现Forbidden (403)“CSRF verification failed. Request aborted.”的错误
需要添加{% csrf_token %}到form中去,<form action="/contact/" method="post">{% csrf_token %}<p>...</p>...</form>
之后在contact()方法的views.py中添加from django.template import RequestContext并且最后一句改为return render_to_response('contact_form.html',{'errors': errors}, context_instance=RequestContext(request))即可
3、我的目录结构是这样的:
mysite-->
books/
contact/
mysite/
templates/
manage.py
4.最后附上完整代码
templates/contact_form.html文件如下
- <html>
- <head>
- <title>Contact us</title>
- </head>
- <body>
- <h1>Contact us</h1>
- {% if errors %}
- <ul>
- {% for error in errors %}
- <li>{{ error }}</li>
- {% endfor %}
- </ul>
- {% endif %}
- <form action="/contact/" method="post">{% csrf_token %}
- <p>Subject: <input type="text" name="subject"></p>
- <p>Your e-mail (optional): <input type="text" name="email"></p>
- <p>Message: <textarea name="message" rows="10" cols="50"></textarea></p>
- <input type="submit" value="Submit">
- </form>
- </body>
- </html>
contact/views.py文件如下:
- from django.core.mail import send_mail
- from django.http import HttpResponseRedirect
- from django.shortcuts import render
- from django.template import RequestContext
- def contact(request):
- errors = []
- if request.method == 'POST':
- if not request.POST.get('subject', ''):
- errors.append('Enter a subject.')
- if not request.POST.get('message', ''):
- errors.append('Enter a message.')
- if request.POST.get('email') and '@' not in request.POST['email']:
- errors.append('Enter a valid e-mail address.')
- if not errors:
- send_mail(
- request.POST['subject'],
- request.POST['message'],
- request.POST.get('email', 'noreply@example.com'),
- ['接收信件的邮箱!'],
- )
- return HttpResponseRedirect('/contact/thanks/')
- return render(request, 'contact_form.html',
- {'errors': errors},context_instance=RequestContext(request))
mysite/mysite/urls.py如下:
- from django.conf.urls import *
- from django.contrib import admin
- from books import views
- from mysite.views import emailsuccess
- from contact.views import contact
- admin.autodiscover()
- urlpatterns = patterns('',
- (r'^contact/$',contact),
- (r'^contact/thanks/$',emailsuccess),
- )
mysite/mysite/views.py文件如下:
- from django.http import HttpResponse,Http404
- def emailsuccess(request):
- return HttpResponse("Send Succeed!")
欢迎交流讨论,共同学习!
转载请注明出处:http://blog.csdn.net/monkeyduck
Django 发送email配置详解及各种错误类型的更多相关文章
- redmine邮件发送功能配置详解
redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...
- 【转】Django+Mysql安装配置详解(Linux)
参考:http://dmyz.org/archives/110 报错TemplateDoesNotExist at 解决: 新建mysite/articles/article.html文件: 文件内容 ...
- commons-logging和Log4j 日志管理/log4j.properties配置详解
commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...
- Maven使用笔记(四)pom.xml配置详解
pom.xml文件配置详解 --声明规范 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
- Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解
Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了. 为了避免这种情况,你 ...
- 【转】Maven pom.xml 配置详解
原文链接:https://yq.aliyun.com/articles/38271 pom.xml文件配置详解 --声明规范 <project xmlns="http://maven. ...
- Spark log4j日志配置详解(转载)
一.spark job日志介绍 spark中提供了log4j的方式记录日志.可以在$SPARK_HOME/conf/下,将 log4j.properties.template 文件copy为 l ...
- log4j.properties配置详解与实例
log4j.properties配置详解与实例 第一步:加入log4j-1.x.x.jar到lib下. 第二步:在工程的src下下建立log4j.properties.内容如下: #OFF,syste ...
- keepalived的配置详解(非常详细)
keepalived的配置详解(非常详细) 2017-01-22 15:24 2997人阅读 评论(0) 收藏 举报 分类: 运维学习(25) 转载自:http://blog.csdn.net ...
随机推荐
- JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题
一.多线程下的单例设计模式 利用双重推断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Si ...
- 一步一步实现视频播放器client(二)
实现主体界面: 222.png (64.46 KB, 下载次数: 0) 下载附件 保存到相冊 前天 21:02 上传 比較常见的一种布局.以下几个button.点击后 ...
- spring4 maven3 mybatis
1 新建maven工程 http://www.cnblogs.com/quanyongan/archive/2013/04/21/3033838.html 如果在第三步中出现错误,比如类似: Coul ...
- ASP.NET动态网站制作(3)--css(2)
前言:css分为四次课讲完,第一节课内容见ASP.NET动态网站制作(2)--css(1),接下来的内容会涉及到定位.浮动.盒子模型(第二次课).css的具体应用(第三次课).css3(第四次课).今 ...
- 无法远程访问 MySql Server
改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "use ...
- (1)Web 应用是一个状态机,视图与状态是一一对应的。 (2)所有的状态,保存在一个对象里面。
Redux 入门教程(一):基本用法 - 阮一峰的网络日志 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_u ...
- dm层 集市层 四层 Build a multi-level data strategy
集市层 四层模型 ODS(临时存储层) MID(中间层) DM(数据集市层) APP(应用层) http://www.datamartist.com/data-warehouse-vs-data-ma ...
- 远程服务器上的weblogic项目管理(五) PermGen内存溢出问题
weblogic偶尔会出现PermGen异常,内存溢出的问题,这个时候需要修改weblogic安装目录下的domain/common/bin/commEnv.cmd. 打开后在其中找到: set ME ...
- opencv轮廓提取、轮廓识别相关要点
1.轮廓提取 src = cv2.imread("***.jpg", cv2.IMREAD_COLOR) gray = cv2.cvtColor(src ,cv2.COLOR_BG ...
- testng testcase失败重试
简单介绍 需求场景:测试移动端应用,常会因为点击失效.网络延迟大等原因导致测试脚本失败.这时,需要自动重新运行失败的脚本,直到脚本成功通过或者到达限定重试次数. 解决方案:实现testng的IRetr ...