用户邮箱注册、发送验证码流程图

    

那,如何解决?

  1.  setting配置邮箱参数

  1. # 邮箱设置,需要在邮箱中开启smtp服务
  2. # 提供服务的主机域名
  3. EMAIL_HOST = 'smtp.163.com'
  4. # 邮箱服务端口
  5. EMAIL = 25
  6. # 开通smtp服务的账号
  7. EMAIL_HOST_USER = '自己的邮箱地址'
  8. # 相关密码
  9. EMAIL_HOST_PASSWORD = '邮箱密码'
  10. #
  11. EMAIL_USE_TIS = False
  12. # 发件人邮箱地址
  13. EMAIL_FROM = '自己的邮箱地址'

   2.  导入django发送邮箱模块, 并调用模块

    # 其中还有一个过程就是需要导入保存邮箱验证码的表,先发送邮件,如果邮件发送成功则保存验证信息到数据库

  1. __author__ = 'beimenchuixue'
  2. __blog__ = 'http://www.cnblogs.com/2bjiujiu/'
  3.  
  4. # 发送邮件模块
  5. from django.core.mail import send_mail
  6. # 验证码信息表
  7. from users.models import EmailVerifyRecord
  8. # 发件人
  9. from MxOline.settings import EMAIL_FROM
  10.  
  11. import random
  12.  
  13. def to_send_email(email, _type='register'):
  14. """发送邮件"""
  15. email_rcode = EmailVerifyRecord()
  16. # 注册发送验证邮件
  17. if _type == 'register':
  18. random_code = get_random_code()
  19.  
  20. email_title = 'title'
  21. email_body = '点击连接完成激活: http://127.0.0.1:8000/active/{random_code}/{_type}'.format(random_code=random_code,
  22. _type=_type)
  23. # 保存验证码
  24. email_rcode.code = random_code
  25. email_rcode.send_type = _type
  26. email_rcode.email = email
  27. email_rcode.save()
  28. # 真正启动Django自带的发送邮件功能,邮件标题,邮件内容,发送人,发给谁,发送成功则返回1,失败则返回0
  29. email_status = send_mail(subject=email_title, message=email_body, from_email=EMAIL_FROM, recipient_list=[email])
  30. return email_status
  31.  
  32. # 忘记密码发送验证邮件, 和 发送验证码逻辑一样
  33. if _type == 'forget':
  34. pass
  35.  
  36. def get_random_code(length=8):
  37. """获得随机字符串"""
  38. code = ''
  39. choice_str = 'abcdefghijklmnopqrstuvwxyz0123456789'
  40. for _ in range(length):
  41. random_str = random.choice(choice_str)
  42. code += random_str
  43. return code

 

核心知识:

  1.  django发送邮件模块 send_mail

  2. setting中配置邮件服务参数

  3. 判断发送邮件类型并保存邮件信息到数据库中去

  4. 随机字符的获取

  

Django 发送邮件的更多相关文章

  1. Django——发送邮件

    Django--发送邮件 在web应用中,服务器对客户发送邮件来通知用户一些信息,可以使用邮件来实现. Django中提供了邮件接口,使我们可以快捷的建设一个邮件发送系统. 以下是一个简单实例: se ...

  2. $Django 发送邮件--django封装模块和python内置SMTP模块

    一 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Header m ...

  3. Django发送邮件和itsdangerous模块的配合使用

    项目需求:用户注册页面注册之后,系统会发送一封邮件到用户邮箱,用户点击链接以激活账户,其中链接中的用户信息需要加密处理一下 其中激活自己邮箱的smtp服务的操作就不在加以说明,菜鸟教程上有非常清晰的讲 ...

  4. django发送邮件的坑

    django发送邮件的坑 配置django发邮件的时候本地发送时好好的,但是放到阿里云的服务器上却不能发送. 经过一系列的排查后终于发现是阿里云把25端口给封了. 后来改用smtps的方式发送,更改d ...

  5. Django发送邮件

    1. 配置相关参数 如果用的是 阿里云的企业邮箱,则类似于下面: 在 settings.py 的最后面加上这些 EMAIL_BACKEND='django.core.mail.backends.smt ...

  6. django发送邮件send_mail&send_mass_mail

    一.配置 在setting.py中进行相关配置: EMAIL_HOST = 'smtp.sina.cn' #SMTP地址 EMAIL_PORT = 25 #SMTP端口 EMAIL_HOST_USER ...

  7. django 发送邮件功能

    setting.py # 邮件配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.e ...

  8. Django发送邮件方法

    在Django中将渲染后的模板进行邮件发送,可以使用send_email方法 首先在settings.py中添加如下配置 # 邮件配置SSL加密方式 EMAIL_HOST = 'smtp.qq.com ...

  9. 富文本编辑器、全文检索和django发送邮件

    1.富文本编辑器 1.1快速了解 借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的.所见即所得的页面.此处以tinymce为例,其它富文本编辑器的使用也是类似的. 在虚拟环境中 ...

随机推荐

  1. BASIC-2 01字串

      基础练习 01字串   时间限制:1.0s   内存限制:256.0MB        问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 ...

  2. Mac下安装ant(利用brew)

    安装ant最简单的方法就是通过brew.步骤如下:1. 安装brew(如果已经安装可以跳过这步). ruby -e "$(curl -fsSL https://raw.github.com/ ...

  3. 【状压DP】poj3254 Corn Fields

    题意: 一块n*m的田,1表示这个地方可以种植,0代表这个地方不能种植.植物种植还必须满足两株植物不能相邻(横竖都不行).问共有几种种植方法,而且当什么都不种时认为是一种方法. 解题思路: 种植用1表 ...

  4. (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练

    从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...

  5. js 移动端写搜索时怎么调用软键盘上面的搜索按钮

    这段时间一直在做移动端,所以遇到很多问题,现在很多网站在做移动端搜索的时候都不会在后面加一个搜索按钮,而是直接调用输入法上面的搜索搜索按钮进行搜索 input的一个新属性给我们提供非常方便的书写, 就 ...

  6. webpack基础打包安装分享

    一.创建webpack-first文件夹作为站点,创建app文件夹存放js原始模块(main.js 和 Greeter.js) 创建 public文件夹存放index.html和打包后的bundle. ...

  7. 阿里云云虚拟主机安装Z-BlogPHP

    简介 在阿里云买了一个云虚拟主机,叫共享虚拟主机普惠版,6 块钱一年.本着练习上手的目的,尝试在阿里云云虚拟主机上安装Z-BlogPHP,一个个人建站的CMS 系统. 云虚拟主机网页空间为200M,M ...

  8. Promises-小程序购物车结算

    //结算提交 checkOut : function(){ var price = this.data.sum; var user = wx.getStorageSync('userInfo'); i ...

  9. Jfinal控制器源码解读

    本文对Jfinal的控制器源码做以下分析. PS:控制器是所有请求跳转的基础,本文就Jfinal控制器的继承关系及初始化的方法做出解释说明. 啰嗦下:所有的请求和响应都是都是通过web容器封装,我们主 ...

  10. Java A+B(个人模版)

    JavaA+B: import java.io.*; import java.util.*; import java.math.BigInteger; import java.util.Scanner ...