完整电商项目--(五)用户基本信息(1):发送邮件

业务场景

  • 当用户在自己的用户中心,填写自己的邮箱的时候。 后台保存起来是很简单的。 但是为了防止恶意的操作,比如 填写的不是自己的邮箱? 填写的根本不是一个邮箱? 填写的邮箱根本不可用?
  • 针对这些问题,当用户填写邮箱后, 我们会向用户邮箱发送一封 激活邮件,只有用户点击 激活邮件的链接,才能激活邮件。

怎么发送邮件?

  • 我们打开django官网,关于发送 邮件的部分
    在这里插入图片描述

  • 有两种常用的发送邮件的函数。send_mail(),send_mass_mail()用于处理大批量的邮件任务,我们选择使用 send_mail()

  • 可以看到主要参数很明显。

    • subject :邮件标题
    • message:普通文本,邮件内容
    • from_email : 发件人
    • recipient_list : 收件人列表
    • html_message : 多媒体邮件正文(可以使html字符串,样式更好看)

谁来最终发送邮件?

怎么django怎么使用它?(补充上面链接中的)

  • 再次查看关于django发送文件的文档
    在这里插入图片描述
    在这里就可以进行配置了! 看到这样是不是对 上面链接中的字段由来更加深刻了。

开始发送邮件:

邮件的内容?

  • 邮件的内容,就是用来验证用户邮箱激活的链接。用户点击它,即可激活邮箱。
  • 激活链接的构造
    • 激活链接很简单,我们可以随意自定义。 关键是 他后面需要携带的参数 token,里面应该包含一些信息,让我们知道是哪个用户的邮箱激活: 可以是用户id。不过是需要加密的,要不然别人可以随意构造链接,去修改,激活 其他人的邮箱
		token = dumps({'user_id':user.id}, constants.EMAIL_ACTIVE_EXPIRES) # 显示的是 b'' 类型数据, 也就是 bytes类型数据,我们把它转换为字符串
        # token = token.decode()  # 默认按照utf-8进行解码,变成字符串
        token_url = settings.EMAIL_VERIFY_URL + '?token=' + token
        # 使用前面讲过的 异步celery发送邮件。这里不再讲解
        send_active_email.delay(email, username, token_url )

下面我们还需要再 写一个邮箱激活的视图吗,去处理这个 激活链接即可~

  • 另外注意授权码是会过期的,提示你这个错误
smtplib.SMTPAuthenticationError: (535, b'Login Fail. Please enter your authorization code to login. More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256')

点击它给的链接,就是教你如何进行 授权码验证

over!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值