Django实现邮件的发送

from django.core.mail import send_mail
1) 开启QQ邮箱POP3/SMTP服务

到这里大家需要跟着步骤来,首先你要登录你的邮箱,然后在邮箱界面找到设置选项点击一下。
然后点击依次点击账户 ——>找到 POP3/IMAP/SMTP.....服务,然后点击该选项卡中的第一项,开启 POP3/SMTP 服务,如下所示:

Django实现邮件发送功能

2) 获取POP3/SMTP第三方授权码

开启时,它需要你使用当时绑定的手机号,发送一条短信进行验证,按照它的提示发送成功后,点击已发送,就会生成一个授权码显示在你的浏览器界面上。记得保存好你的授权码,这个授权码在后面操作中还会用到,请务必妥善保管。

3) 配置Django中的settings.py文件

当获得授权码后,我们就要在 Django 的 settings.py 中进行相应的配置,切记,你没有必要记下这些配置,它的写法是固定的,当你需要的时候直接 copy 即可,但是我们要明白这些配置项的意思,它们介绍如下所示:

BASE_URL = "http://localhost:9531"

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 587
# EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'qq.com'
EMAIL_HOST_PASSWORD = ''
 
  1. # 固定写法设置Email引擎
  2. EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
  3. EMAIL_HOST = 'smtp.qq.com' # 腾讯QQ邮箱 SMTP 服务器地址
  4. EMAIL_PORT = 25 # SMTP服务的端口号
  5. EMAIL_HOST_USER = 'xxx@qq.com' #你的qq邮箱,邮件发送者的邮箱
  6. EMAIL_HOST_PASSWORD = 'None' #你申请的授权码(略)
  7. EMAIL_USE_TLS = False #与SMTP服务器通信时,是否启用安全模式

3. 编写发送邮件视的图函数

最后一步就是要编写一个发送邮件的视图函数,它的格式几乎也是固定的,只需要更改相应的配置项即可,如下所示:这里发送邮件我放在我创建用户时作为验证的一种方式
                                点击我发送的邮件即可完成验证

        def create(self, request, *args, **kwargs):
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)
            user_info = self.perform_create(serializer)
            user_info.set_password(request.data['password'])
            user_info.is_active = False
            user_info.save()
            code = user_info.code
            # url = request.build_absolute_uri("/api/user_activate/" + str(code) + "/")
            url = BASE_URL + "/#/user_activate?code=" + str(code) #BASE_URL 可能会变
            print(url)

            send_mail(
                '用户激活',#主题
                url, #发送的信息
                'xxxxxx@qq.com',#发件人
                [user_info.email],#邮箱接收者
                fail_silently=False,
            )

            headers = self.get_success_headers(serializer.data)
            return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

配置好 url 路径映射,并就会得到显示邮件已经发送成功,查看我们的邮箱,可以看到发出的邮件。如下所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值