django-发送邮件

一、业务场景

业务警告

邮箱验证

密码找回

二、邮件相关协议

1.SMYTP(简答邮件传输协议 25端口)

属于"推送"协议 负责发送

2.IMAP(交互式邮件访问协议,应用层协议,143端口)

用于从本地邮件客户端访问远程服务器上的邮件

属于"拉取"协议

3.POP3(邮局协议的第三个版本,TCP/IP中的一员 110端口)

支持使用客户端远程管理在服务器上的电子邮件

属于"拉取"协议

IMAP 和 POP3区别

IMAP具备摘要浏览功能,可预览部分摘要。在下载整个邮件

IMAP为双向协议,客户端操作可反馈给服务器

POP3必须下载全部邮件,无摘要功能

POP3为单项协议,客户端操作无法同步服务器

用户A 给用户B发送邮件的过程

三、Django发邮件

Django中配置邮件功能,主要为SMTP协议,负责发邮件

1.原理:

给Django授权一个邮箱

Django用该邮箱给对应收件人发送邮件

django.core.mail封装了电子邮件的自动发送SMTP协议

2.授权步骤-QQ邮箱为例

申请账号

登录QQ邮箱并修改设置

修改 QQ邮箱->设置->账户->"POP3/IMAP....服务"

3.配置(settings.py

各个邮箱授权密码获取方式网上百度

python 复制代码
# 邮件相关配置
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
# 腾讯QQ邮箱 SMTP服务器地址
EMAIL_HOST = 'smtp.qq.com'
# SMTP服务器的端口号
EMAIL_PORT = 25
# 发送邮件的QQ邮箱
EMAIL_HOST_USER = 'xxxxxx@qq.com'
# 授权密码
EMAIL_HOST_PASSWORD = 'xxxxxx'
# 与SMTP服务器通信时,是否启动TLS链接(安全链接)默认False
EMAIL_USE_TLS = False

4.函数调用

  • 给一个人
python 复制代码
from django.core import mail
class TestEmali(APIView):
    def post(self,request):
        mail.send_mail(subject="测试",message="测试邮箱",from_email="1353973780@qq.com",recipient_list=["1353973780@qq.com"])
        return Response("success")

各参数如下:

  • subject,邮件标题
  • message,发送邮件内容
  • from_email,发件人
  • recipient_list,收件人,可以是多个
  • fail_silently,如果为False时,发送失败抛出错误
  • 给多个人
  • 多封邮件给多个人
相关推荐
AntBlack20 分钟前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
杜子不疼.2 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
myzzb3 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
TLuoQiu3 小时前
小电视视频内容获取GUI工具
爬虫·python
我叫黑大帅3 小时前
【CustomTkinter】 python可以写前端?😆
后端·python
胡耀超3 小时前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr
java1234_小锋3 小时前
一周学会Matplotlib3 Python 数据可视化-绘制自相关图
开发语言·python·信息可视化·matplotlib·matplotlib3
Juchecar6 小时前
分析:将现代开源浏览器的JavaScript引擎更换为Python的可行性与操作
前端·javascript·python
科大饭桶6 小时前
昇腾AI自学Day2-- 深度学习基础工具与数学
人工智能·pytorch·python·深度学习·numpy
天才测试猿8 小时前
常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试