Model
class EmailVerifyRecord(models.Model):
code=models.CharField(max_length=20,verbose_name=u"验证码")
email=models.EmailField(max_length=50,verbose_name=u"邮箱")
send_type=models.CharField(choices=(("register","注册"),("forget",u"找回密码")),max_length=15)
send_time=models.DateTimeField(default=datetime.now)
class Meta:
verbose_name=u"邮箱验证码"
verbose_name_plural=verbose_name
sendemail.py 发送email的方法
需要在setting.py中设置EMAIL_HOST等相关信息
设置方法
1.打开邮箱,设置,开启POP3/SMTP服务
2.配置setting
EMAIL_HOST="smtp.qq.com"
EMAIL_PORT=25 #默认
EMAIL_HOST_USER="123@qq.com"
EMAIL_HOST_PASSWORD="123456"
EMAIL_USE_TLS=False #默认
EMAIL_FROM="123@qq.com"
发送方法 sendemail.py
from users.models import EmailVerifyRecord
from random import Random
from django.core.mail import send_mail
from semail.settings import EMAIL_FROM
#生成随机字符串
def random_str(randomlength=8):
str=''
chars='AaBbCcDdEeFfGg1234567890'
length=len(chars)-1
random=Random()
for i in range(randomlength):
str+=chars[random.randint(0,length)]
return str
def send_register_email(email,send_type="register"):
email_record=EmailVerifyRecord()
code=random_str(16)
email_record.code=code
email_record.email=email
email_record.send_type=send_type
email_record.save()
#保存到数据库完成
email_title = "网站注册"
email_body = "点击下面链接激活账号:http://127.0.0.1:8000/email/{0}".format(code)
send_mail(email_title,email_body,EMAIL_FROM,[email])
#发送方法完成