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

    

那,如何解决?

  1.  setting配置邮箱参数

# 邮箱设置,需要在邮箱中开启smtp服务
# 提供服务的主机域名
EMAIL_HOST = 'smtp.163.com'
# 邮箱服务端口
EMAIL = 25
# 开通smtp服务的账号
EMAIL_HOST_USER = '自己的邮箱地址'
# 相关密码
EMAIL_HOST_PASSWORD = '邮箱密码'
#
EMAIL_USE_TIS = False
# 发件人邮箱地址
EMAIL_FROM = '自己的邮箱地址'

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

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

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/' # 发送邮件模块
from django.core.mail import send_mail
# 验证码信息表
from users.models import EmailVerifyRecord
# 发件人
from MxOline.settings import EMAIL_FROM import random def to_send_email(email, _type='register'):
"""发送邮件"""
email_rcode = EmailVerifyRecord()
# 注册发送验证邮件
if _type == 'register':
random_code = get_random_code() email_title = 'title'
email_body = '点击连接完成激活: http://127.0.0.1:8000/active/{random_code}/{_type}'.format(random_code=random_code,
_type=_type)
# 保存验证码
email_rcode.code = random_code
email_rcode.send_type = _type
email_rcode.email = email
email_rcode.save()
# 真正启动Django自带的发送邮件功能,邮件标题,邮件内容,发送人,发给谁,发送成功则返回1,失败则返回0
email_status = send_mail(subject=email_title, message=email_body, from_email=EMAIL_FROM, recipient_list=[email])
return email_status # 忘记密码发送验证邮件, 和 发送验证码逻辑一样
if _type == 'forget':
pass def get_random_code(length=8):
"""获得随机字符串"""
code = ''
choice_str = 'abcdefghijklmnopqrstuvwxyz0123456789'
for _ in range(length):
random_str = random.choice(choice_str)
code += random_str
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. COM学习(三)——COM的跨语言

    COM是基于二进制的组件模块,从设计之初就以支持所有语言作为它的一个目标,这篇文章主要探讨COM的跨语言部分. idl文件 一般COM接口的实现肯定是以某一具体语言来实现的,比如说使用VC++语言,这 ...

  2. windows 异常处理

    为了程序的健壮性,windows 中提供了异常处理机制,称为结构化异常,异常一般分为硬件异常和软件异常,硬件异常一般是指在执行机器指令时发生的异常,比如试图向一个拥有只读保护的页面写入内容,或者是硬件 ...

  3. Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现

    2017年4月29日~5月1日,国际劳动节, 三天的小长假. 在国内,小长假往往是这样的: 然而我当时在戏称为"德村"(德国农村)的Walldorf出差并且住在Wiesloch, ...

  4. FreeMarker解析json数据

    模拟后台传过来的 json 字符串text <#assign text> {"res":"0","msg":"OK&q ...

  5. Zabbix实战-简易教程--正则(Regxp)

    一.正则表达式(Regx) 1.概述 正则表达式概念就不解释了.请参考:https://en.wikipedia.org/wiki/Regular_expression#POSIX_extended ...

  6. BZOJ:4530: [Bjoi2014]大融合

    4530: [Bjoi2014]大融合 拿这题作为lct子树查询的练手.本来以为这会是一个大知识点,结果好像只是一个小技巧? 多维护一个虚边连接着的子树大小即可. #include<cstdio ...

  7. 洛谷 P1876 开灯(思维,枚举,规律题)

    P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编 ...

  8. zoj 3228:Searching the String

    Description Little jay really hates to deal with string. But moondy likes it very much, and she's so ...

  9. [51nod1462]树据结构

    题面: 给一颗以1为根的树. 每个点有两个权值:vi, ti,一开始全部是零. Q次操作: 读入o, u, d o = 1 对u到根上所有点的vi += d  o = 2 对u到根上所有点的ti += ...

  10. hdu_1251统计难题(字典树Trie)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...