最近有好几个客户的需求中都有邮件验证这功能,所以今天决定把代码来讲一下
首先,必备的肯定是邮件发送模块
def sendEmail(email):
# 第三方 SMTP 服务
mail_host = "smtp.sina.com" # 设置服务器,qq的SMTP服务host
mail_user = "xxxx@sina.com" # 用户名(须修改)
mail_pass = "xxxxxx" # 此处为在qq开启SMTP服务时返回的密码 (须修改)
sender = 'xxxxx@sina.com' # 同用户名 (须修改)
receivers = [email] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText('...', 'plain', 'utf-8')
message['From'] = Header("第一封python测试邮件", 'utf-8')
message['To'] = Header("测试", 'utf-8')
try:
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.ehlo()
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
except smtplib.SMTPException as e:
print(e)要先在对应的邮箱服务器中开通stmp服务,然后再说上述代码中配置成相应的内容,就可以发送邮件了
然后讲一下如何实现注册认证
我的实现手段是,将注册邮箱进行加密同时根据uuid生成一个唯一的值,将uuid存入数据库,然后将uuid和加密后的email拼接成链接发送给用户。
当用户点击后获取加密后的email和uuid,根据uuid查询数据库查找到注册用户,然后对比加密后的email,如果对比成功,则注册成功。