Django 发送邮件
在settings.py中设置
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = '763005825@qq.com' # 帐号
EMAIL_HOST_PASSWORD = 'jffbcdknmbzvbega' # 密码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
引入包
from django.core.mail import send_mail
发送邮件
send_mail('主题',"内容",'发送账号',['接收账号'], fail_silently=False)
selery发送邮件
celery
- 官方网站
- 中文文档
- 示例一:用户发起request,并等待response返回。在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验
- 示例二:网站每小时需要同步一次天气预报信息,但是http是请求触发的,难道要一小时请求一次吗?
- 使用celery后,情况就不一样了
- 示例一的解决:将耗时的程序放到celery中执行
- 示例二的解决:使用celery定时执行
名词
- 任务task:就是一个Python函数
- 队列queue:将需要执行的任务加入到队列中
- 工人worker:在一个新进程中,负责执行队列中的任务
- 代理人broker:负责调度,在布置环境中使用redis
使用
- 安装包
celery==3.1.25
celery-with-redis==3.0
django-celery==3.1.17
- 配置settings
INSTALLED_APPS = (
...
'djcelery',
}
...
import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_IMPORTS = ('应用名称.task')
- 在应用目录下创建task.py文件
from celery import task
from django.core.mail import send_mail
import time
@task
def sendmail():
email='763005825@qq.com'
send_mail('reigster',"欢迎登录天天生鲜",'763005825@qq.com',[email],fail_silently=False)
time.sleep(10)
- 迁移,生成celery需要的数据表
python manage.py migrate
- 启动Redis
sudo redis-server /etc/redis/redis.conf
- 启动worker
python manage.py celery worker --loglevel=info
- 使用代码
#from task import *
def index(request):
sendmail.delay()
return HttpResponse("hello world")
# 专门进行验证def validate_sql(data): for k,val in data: if re.match("['select' ,'update','delete']", val) != None: return False return True # 注册class Register(View): def get(self,request): return render(request,'index/register.html') def post(self,request): mes = {} data=request.POST # flag=validate_sql(data) # if flag==False: # mes['code'] = 10015 # mes['message'] = '输入不合法' # return HttpResponse(json.dumps(mes)) username=data.get('user_name') pwd=data.get('pwd') cpwd=data.get('cpwd') email=data.get('email') allow=data.get('allow') if not all([username,pwd,cpwd,email,allow]): mes['code']=10010 mes['message']='都不能为空' return HttpResponse(json.dumps(mes)) else: # 用户名必须为8-12位字母 if re.match("\w{8,12}$",username)==None: mes['code']=10011 mes['message']='用户名不合法' # if re.match("['select' ,'update','delete']",username)!=None: # mes['code']=10012 # 验证邮箱 if re.match("\w{8,12}@(163|126|qq).com$", email) == None: mes['code'] = 10012 mes['message'] = '用户名不合法' return HttpResponse(json.dumps(mes)) # 验证两次输入的密码是否一致 if pwd!=cpwd: mes['code'] = 10013 mes['message'] = '两次输入的密码不一致' return HttpResponse(json.dumps(mes)) # 注册 user=User(name=username,password=make_password(pwd), token='23') try: user.save() request.session['indexuser']=username # 发送邮件 from mypro.settings import DEFAULT_FROM_EMAIL send_mail('你好,欢迎注册',"欢迎你注册xx网站<a href='/authuser?" "token=wertfgb>",DEFAULT_FROM_EMAIL,[email],fail_silently=False) except: mes['code'] = 10018 mes['message'] = '添加失败' return HttpResponse(json.dumps(mes)) mes['code']=1200 mes['message']='' return HttpResponse(json.dumps(mes))
转载于:https://www.cnblogs.com/wyf2019/p/10972625.html
Django 发送邮件相关推荐
- Django项目实战——8—(判断用户是否登录并返回JSON、Django发送邮件的配置、生成邮箱验证链接、验证邮箱后端逻辑)
1.判断用户是否登录并返回JSON 重要提示: 只有用户登录时才能让其绑定邮箱. 此时前后端交互的数据类型是JSON,所以需要判断用户是否登录并返回JSON给用户. 方案一: 使用Django用户认证 ...
- Django - 发送邮件
在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件. 所有的功能都在django.core.mail中. ...
- Django发送邮件
Django提供了发送邮件的接口,仅需做简单的设置即可实现发送邮件的功能. 首先需要在setting做简单的配置,以163邮箱为例: EMAIL_BACKEND = 'django.core.mail ...
- django 发送邮件验证码
一.前言 1.邮箱有几种类型? 邮箱分为企业邮箱,如:腾讯企业邮箱.网易企业邮箱.阿里企业邮箱.新浪企业邮箱.zoho企业邮箱.个人邮箱,如:QQ邮箱.163网易邮箱.sina新浪邮箱. 2.TCL& ...
- 30.django发送邮件
目录 1 协议介绍 1.1 SMTP协议 1.2 IMAP 1.3 POP3 1.4 IMAP与POP3的区别 2 在Django使用 2.1 开通邮箱SMTP服务 2.2 配置set ...
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- python写邮箱系统_Python django实现简单的邮件系统发送邮件功能
本文实例讲述了Python django实现简单的邮件系统发送邮件功能.分享给大家供大家参考,具体如下: django邮件系统 Django发送邮件官方中文文档 总结如下: 1.首先这份文档看三两遍是 ...
- Django使用新浪邮箱发送邮件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Django使用新浪邮箱发送邮件 一.参考的资料 二.遇到的问题 一.参考的资料 刘江Django博客教程: 11.Django发送邮 ...
- 摘抄Django项目(一)
果生鲜项目介绍 1.商业模式说明 2.开发流程介绍 3.项目需求分析 4.项目架构分析 5.数据库设计 6.模型类说明 7.创建dailyfresh项目 8.展示注册页面 9.视图函数的get和pos ...
最新文章
- Gitbook简易教程
- linux编译c++11的代码
- 【牢骚】360,你怎么对待别人,别人就怎么对待你。
- 利用 Spring MVC 上传多文件到指定目录 spring upload files
- 监听edittext中文字个数变化··
- 【开源】.net 分布式架构之监控平台
- redis+php微博,redis+php实现微博(三)微博列表功能详解
- 【Spring】Spring Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect‘ not set
- office右键菜单修复_自从有了这个工具,我的Office操作已经快到慢不下来了!
- 阅读bulid to win感想
- vant 日历插件slots_vue的vant组件库中的slot如何按需使用呢
- 【每天get 一点新知识】Python print 打印结果(字符串类型)前面添加 说明
- 问题三十八:C++中bad alloc问题(1)——分析问题
- 02 Toolbar的使用
- 微软Bing翻译API的使用
- vue 手机号正则表达式
- 程序员用什么软件做笔记?
- DAEFRHDSGYEVHHQKLVFFAEDV|138648-77-8
- .obj 和 .mtl文件格式
- C语言算法:冒泡法排序
热门文章
- 动态图相册 android,动态图相册 in de App Store
- 简述java的异常机制_JAVA异常机制简述
- v-show组件 vue_Vue.js教程--基础(实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for.)...
- 代码和mysql服务器编码不一致_PL/SQL Developer教程:解决oracle服务器端和客户端字符编码不一致问题...
- SQLi LABS Less-39
- Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)
- 桌面上的Flutter:Electron又多了个对手
- k8s nod rc service 使用
- Java 数据类型和 MySql 数据类型对应一览表
- PHP5.3版本安装