IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 30.django发送邮件 -> 正文阅读

[Python知识库]30.django发送邮件

目录

1??协议介绍

1.1??SMTP协议

1.2??IMAP

1.3??POP3

1.4??IMAP与POP3的区别

2??在Django使用

2.1??开通邮箱SMTP服务

2.2??配置settings.py

2.3??前端

2.4??视图

2.5??路由

2.6??使用

3??应用

3.1??将网站的错误发送给工作人员


发送邮件是网站的常见功能,比如需要邮箱验证登录状态的时候需要发送邮件,密码找回的时候需要发送邮件等等

1??协议介绍

1.1??SMTP协议

SMTP协议是推送(从服务端到客户端)协议,SMTM的全称是Simple Main Transfer Protocol(简单邮件传输协议),这个协议的服务一般在25号端口

1.2??IMAP

IMAP协议是拉取(从客户端到服务端)协议,比如你打开你的邮箱查看里面都有什么邮件,这个过程就是拉取。IMAP全称为Internet Mail Access Protocol(交互式邮件访问协议)。IMAP属于应用层协议,端口为143

1.3??POP3

POP3协议属于拉取协议。全称为Post Office Protocol 3(邮局协议的第三个版本),是TCP/IP协议族中的一员,端口为110

1.4??IMAP与POP3的区别

两者均为拉取型协议,区别如下

  • IMAP具有摘要功能,可以预览部分摘要在下载整个邮件。POP3必须下载全部邮件,无摘要功能
  • IMAP为双向协议,客户端操作可反馈给服务器。POP3为单向协议,客户端操作无法同步服务器

2??在Django使用

Django主要实现发邮件的功能,实现的流程是这样的

1.给Django授权一个邮箱

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

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

2.1??开通邮箱SMTP服务

我们以qq邮箱为例,其余邮箱的设置方法也类似

点击账户

往下滚可以看到各种服务,django主要实现服务端给客户端发邮件,所以只要选一个带SMTP服务的就可以了,我开启的是POP3/SMTP服务

验证后会得到一个16位的授权码

2.2??配置settings.py

含义依次是

  • EMAIL_BACKEND 邮件引擎,这个就是写死的,可能会根据django版本不同有所改变
  • EMAIL_HOST 这个是使用邮箱的SMTP服务器地址,常见的服务器地址可以看一下这个?常用SMTP地址_huang_hai_an的博客-CSDN博客_smtp地址
  • EMAIL_PORT SMTP 这里是qq邮箱的SMTP服务端口号,基本都会用25号端口
  • EMAIL_HOTS_USER 你刚刚使用的qq邮箱
  • EMAIL_HOST_PASSWORD 上面qq邮箱对应的授权码,如果授权码忘了,在qq邮箱中把服务关了再开一遍会得到新的授权码
  • EMAIL_USE_TLS 是否启用TLS链接(安全链接),我们用False就行,这个看一下你的邮箱支不支持TLS,如果不支持你这写True加密,对面(qq)解不了

2.3??前端

一般来讲会有给用户写自己邮箱的页面,我们简单搞一下,文件名为send_email.html

  • input的type不一定为email,用text也行,我这里用email就是简单验证一下输入的内容

2.4??视图

subject是题目。message是内容。from_email是用谁发。recipient_list是发给谁,recipent_list是一个列表,可以发给多人。一般很少在服务端进行群发,也很少让用户自己写题目和消息内容

2.5??路由

2.6??使用

访问路由后写一个邮箱(可以发给自己),然后点击发送

之后会显示发送成功

打开邮箱后可以看到刚刚发送的邮件

3??应用

3.1??将网站的错误发送给工作人员

我们使用中间进行捕获错误,然后把错误信息发到工作人员的邮箱,以便后续对这些错误进行修改

我们定义一个中间件专门来做这个事情

然后在settings.py中注册这个中间件

一般我们不使用exception来获取错误信息,因为exception的错误信息太少,一般使用python内建的traceback的format_exc()方法,下面是两种报错信息的比较

发现一个异常后会自动发到邮箱

收件人一般会有多个邮箱,如果这多个邮箱有多次复用的地方,可以在settings.py中定义一个列表变量,然后from django.conf import settings,之后settings.列表变量名。进行复用

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:37:01  更:2022-10-08 20:40:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:46:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计