from random import Random  # 用于生成随机码
from django.core.mail import send_mail  # 发送邮件模块
from enroll.models import EmailVerifyRecord  # 邮箱验证model
from django.conf import settings  # setting.py添加的的配置信息
import random


# 生成随机字符串
def random_str(randomlength=8):
    """
    随机字符串
    :param randomlength: 字符串长度
    :return: String 类型字符串
    """
    str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str += chars[random.randint(0, length)]
    return str


# 发送电子邮件
def send_code_email(email, send_type="register"):
    """
    发送电子邮件
    :param email: 要发送的邮箱
    :param send_type: 邮箱类型
    :return: True/False
    """
    email_record = EmailVerifyRecord()
    # 将给用户发的信息保存在数据库中
    code = "".join([str(random.randint(0, 9)) for i in range(4)])
    email_record.code = code
    email_record.email = email
    # email_record.send_type = send_type
    # email_record.send_time = time.time()
    email_record.save()
    # 初始化为空
    email_title = ""
    email_body = ""
    # 如果为注册类型
    # if send_type == "register":
    #     email_title = "注册激活"
    #     # email_body = "请点击下面的链接激活你的账号:http://127.0.0.1:8000/active/{0}".format(code)
    #     email_body = "您的邮箱注册验证码为：{0}, 该验证码有效时间为两分钟，请及时进行验证。".format(code)
    #     # 发送邮件
    #     send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email])
    #     if not send_status:
    #         return False
    if send_type == "retrieve":
        email_title = "找回密码"
        email_body = "您的邮箱注册验证码为：{0}, 该验证码有效时间为两分钟，请及时进行验证。".format(code)
        # 发送邮件
        send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email])
        if not send_status:
            return False
    return True
