django 增加验证邮箱功能

在user文件夹下新建python包,utils

在包内新建文件email_send.py,其中包括验证字符串随机码的产生,数据库的存储和email的发送

# -*- coding: utf-8 -*-
# 作者:神秘藏宝室
# 日期:2019/1/1 22:21
from random import Random
from django.core.mail import send_mail

from users.models import EmailVerifyRecord
from waaaxWeb.settings import EMAIL_FROM


def random_str(randomlength=8):
    str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str += chars[random.randint(0, length)]
    return str


def send_registr_email(email, sendtpye='register'):
    email_record = EmailVerifyRecord()
    code = random_str(16)
    email_record.code = code
    email_record.email = email
    email_record.send_type = sendtpye
    email_record.save()

    email_title = ''
    email_body = ''
    if sendtpye == 'register':
        email_title = u'维可思电子网注册激活链接'
        email_body = u'请点击下面的链接激活您的账号:http://127.0.0.1:8000/active/{0}'.format(code)

        send_status = send_mail(email_title, email_body, EMAIL_FROM, [email])
        if send_status:
            pass
        else:
            pass

因为用到发送email需要在settings下设置EMAIL的属性

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp-mail.outlook.com'                       #SMTP地址 例如: smtp.163.com
EMAIL_PORT = 25                       #SMTP端口 例如: 25
EMAIL_HOST_USER = '[email protected]'                  #qq的邮箱 例如: [email protected]
EMAIL_HOST_PASSWORD = ''              #我的邮箱密码 例如  xxxxxxxxx
EMAIL_SUBJECT_PREFIX = u'django'       #为邮件Subject-line前缀,默认是'[django]'
EMAIL_USE_TLS = True                  #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false
EMAIL_FROM = '[email protected]'

猜你喜欢

转载自www.cnblogs.com/Mysterious/p/10206575.html
今日推荐