from django.core.mail import send_mail
1) 开启QQ邮箱POP3/SMTP服务
到这里大家需要跟着步骤来,首先你要登录你的邮箱,然后在邮箱界面找到设置选项点击一下。
然后点击依次点击账户 ——>找到 POP3/IMAP/SMTP.....服务,然后点击该选项卡中的第一项,开启 POP3/SMTP 服务,如下所示:
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 = ''
- # 固定写法设置Email引擎
- EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
- EMAIL_HOST = 'smtp.qq.com' # 腾讯QQ邮箱 SMTP 服务器地址
- EMAIL_PORT = 25 # SMTP服务的端口号
- EMAIL_HOST_USER = 'xxx@qq.com' #你的qq邮箱,邮件发送者的邮箱
- EMAIL_HOST_PASSWORD = 'None' #你申请的授权码(略)
- 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 路径映射,并就会得到显示邮件已经发送成功,查看我们的邮箱,可以看到发出的邮件。如下所示: