使用django SMTP发送邮件 email

版权声明:来自 Cox 的程序员 https://blog.csdn.net/Coxhuang/article/details/86692160

Email

#0 Github

https://github.com/Coxhuang/django-email

#1 环境

Python3.6
Django==2.0.7
djangorestframework==3.8.2

#3 需求分析

某网站用户忘记密码,需要邮箱验证找回密码

#4 开始

#4.1 新建一个django项目

#4.2 配置

settings.py
设置邮箱/授权码(如何设置自己的邮箱?后面详细讲解)


EMAIL_USE_TLS = True  # 是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)
# EMAIL_USE_SSL = True                         #是否使用SSL加密,qq企业邮箱要求使用
EMAIL_HOST = 'smtp.163.com'  # 发送邮件的邮箱 的 SMTP服务器,这里用了163邮箱
EMAIL_PORT = 25  # 发件箱的SMTP服务器端口
EMAIL_HOST_USER = '[email protected]'  # 发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = 'mhesat163'  # 发送邮件的邮箱密码(这里使用的是授权码)
EMAIL_FROM = 'mhesat<[email protected]>'  # 收件人看到的发件人

views.py

from django.core.mail import send_mail
...
class sendEmailAPI(APIView):
    def post(self, request):
        email = request.data.get("email",None)
        send_mail('subject', # 邮件标题
                  "message", # 邮件内容
                  settings.EMAIL_FROM, # 源
                  [email]) # 目的
        return Response({"msg":"邮件发送成功!"}, status=status.HTTP_200_OK)

请求数据

{
	"email":"[email protected]" # 目的邮箱地址
}

发送成功

在这里插入图片描述

#5 邮箱配置详解

#5.1 配置自己的邮箱地址([email protected])

EMAIL_HOST_USER = '[email protected]'  # 发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = '授权码'  # 发送邮件的邮箱密码(这里使用的是授权码)
EMAIL_FROM = 'xxx<[email protected]>'  # 收件人看到的发件人

#5.2 配置授权码(这里以163为例)

进入163官网,点击设置
在这里插入图片描述
设置授权码

在这里插入图片描述
拿到授权码后,填入settings.py中的EMAIL_HOST_PASSWORD="授权码"即可

猜你喜欢

转载自blog.csdn.net/Coxhuang/article/details/86692160
今日推荐