热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Django1.11.9发送邮件与邮件激活

Django发送邮件与邮件激活本文博主原创第一次使用markdown编辑器好开心闲话少叙修改settings.py进行设置EMAIL_USE_SSLTrue#这里要用SSL

Django 发送邮件与邮件激活

本文博主原创 第一次使用markdown编辑器好开心

闲话少叙

修改settings.py 进行设置

EMAIL_USE_SSL = True #这里要用SSL协议
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = 'abcdefg@qq.com' # 帐号
EMAIL_HOST_PASSWORD = 'migpwqgex123123123' # 密码(必须是授权码)
DEFAULT_FROM_EMAIL = 'jojo的奇幻冒险' #默认发件人

新建sendemail.py文件

在这里插入图片描述

from audioop import reversefrom django.core.mail import send_mail, EmailMultiAlternatives
from django.shortcuts import render
from django.template import loader, Contextfrom axf import settings
from axf.settings import EMAIL_HOST_USER, EMAIL_HOST_PASSWORDdef sendemial3(data,email):title = '账号激活'email_template_name = 'mailtempalte.html't = loader.get_template(email_template_name)mail_list = [email, ]subject, from_email, to = title, EMAIL_HOST_USER, mail_listhtml_content = t.render(data)msg = EmailMultiAlternatives(subject, html_content, from_email, to)msg.attach_alternative(html_content, "text/html")msg.send()

在template文件夹下新建mailtemplate.html文件(要发送的模板)

在这里插入图片描述






尊贵的{{ name }}男士,你好:

欢迎光临红浪漫,点击下面链接激活更多服(bao)务(jian)

    
激活如果链接失效,请访问下方链接
    {{ url }}


配置urls.py文件 增加路由

在这里插入图片描述

#路由不用都加只加上 regist与activate就好
from django.conf.urls import url, includefrom app import viewsurlpatterns = [url(r'^index/', views.index,name='index'),url(r'^index1/', views.index1,name='index1'),url(r'^home/', views.home,name='home'),url(r'^cart/', views.cart,name='cart'),url(r'^market/', views.market,name='market'),url(r'^market_response/(?P\d+)/(?P\d+)/(?P\d+)/$', views.market_response,name='market_response'),url(r'^mine/', views.mine,name='mine'),url(r'^login/', views.login,name='login'),url(r'^regist/', views.regist,name='regist'),url(r'^checkname/', views.checkname,name='checkname'),url(r'^activate/', views.activate,name='activate'),url(r'^logout/', views.logout,name='logout'),
]

views.py文件中添加urls中对应的函数

在这里插入图片描述

@csrf_exempt
def regist(request):if request.method == 'GET':data = {'tittle':'注册'}return render(request,'user/regist.html',data)if request.method == 'POST':usrname = request.POST.get('username')print(usrname)password = request.POST.get('password')encry_password = make_password(password)# 可以使用正则进行 前端验证email = request.POST.get('emailas')ip = request.META.get('REMOTE_ADDR')icon = request.FILES.get('icon')token = generate_token(ip, usrname)print(token)user = User(username=usrname, password=encry_password, email=email, icon=icon,u_token=token)user.save()url = 'http://127.0.0.1:8000/app/activate/?u_token=' + tokencache.set(token,user.id,300)data = {'email':email,'name' : usrname,'url' : url,}sendemial3(data,email) #调用此函数发送邮件# user = User(username=usrname,password=password,email=email,icon=icon)# user.save()return redirect(reverse("app:login"))

在这里插入图片描述

def activate(request): #此函数主要用于激活邮箱token = request.GET.get('u_token')if(cache.has_key(token)):id = int(cache.get(token))user = User.objects.get(pk=id)if(user):user.active = Trueuser.save()return redirect(reverse("app:login")) else:return HttpResponse('用户不存在')else:return HttpResponse('激活有效期已过')return None

结束了 这样就能发送邮件了 不要忘记配置邮箱

配置邮箱的链接https://www.cnblogs.com/zyj-python/p/7522471.html


推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • markdown编辑器利用`markdown_js`开源库实现todolist小项目的markdown日记本功能todolist小项目地址之前的介绍随笔todoListmarkdown-js仓库遇到的 ... [详细]
  • 我正在为我的Symfony2项目构建一个搜索功能,我为它编写了SQL,如下所示:SELECTdlc.title,dlc.description,dlc.keywordsFROMSh ... [详细]
  • 用户登录 ... [详细]
  • Android native层服务例子Bp和Bn
    转入android阵地,被各种权限所阻挠,app写个jni各种没有权限,只能开个native服务,本来android的服务& ... [详细]
  • Android实现彩信附件的添加与删除功能-本文实例讲述了Android实现彩信附件的添加与删除功能。分享给大家供大家参考,具体如下:添加附件在ComposeMessageActi ... [详细]
  • 当程序到后台后,继续完成LongRunning Task 任务
    原文:http:blog.sina.com.cnsblog_7b9d64af0101cjci.html(2013-04-0921:27:24)我们知道, ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
author-avatar
Only-安之若素
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有