Python之Mail编程
# Mail编程
- 管理程序
- Euroda使邮件普及
- Netscape,outlook,forxmail后来居上
- Hotmail使用浏览器发送邮件 ## 邮件工作流程
- MUA邮件用户代理
- MTA邮件代理传输
- MDA邮件投递代理
-编写程序
- 发送:MUA->MTA with SMTP: simpleMailTransferprotocal,包含MTA->MTA
- 接收:MDA->MUA with POP3 and IMAP: PostOfficePerotocal v3 and internetMessageAccessProtocal v4
- 准备工作
- 注册邮箱
- 第三方邮件需要特殊设置
- 进入设置中心
- 取得授权码 - Python for mail
- SMTP协议负责发送邮件
- 使用email模块构建邮件
- 纯文本邮件
- 案例mail
- Html格式邮件发送
- 准备HTML代码作为内容
- 把邮件的subtype设为html
- 发送
- 案例htmlmail
- 发送带附件的邮件
- 一封信如果涉及多个部分,需要使用MIMEMultipart格式创建
- 添加一个MIMEText正文
- 添加一个MIMEBase或者MIMEText作为附件
- 案例附件mail
- 添加邮件头,抄送等信息
- mail["From"] 表示发送着信息,包括姓名和邮件
- mail["To"] 表示接收者信息,包括姓名和邮件地址
- mail["Subject"] 表示摘要或者主题信息
- 案例mail主题
- 同时支持html和text格式
- 构建一个MIMEMultipart格式邮件
- MIMEMultipart的subtype设置成alternative格式
- 添加HTML和text邮件
- 案例HTML和text邮件
- 使用smtplib模块发送邮件 - POP3协议接收邮件
- 本质上是MDA到MUA的一个过程
- 从MDA下载下来的是一个完整的邮件结构体,需要解析才能得到每个具体可读的内容
- 步骤:
1. 用poplib下载邮件结构体原始内容
1. 准备相应的内容(邮件地址,密码,POP3实例)
2. 身份认证
3. 一般会先得到邮箱内邮件的整体列表
4. 根据相应序号,得到某一封信数据流
5. 利用解析函数进行解析出相应的邮件结构体
2. 用email解析邮件的具体内容
Python之Mail编程的更多相关文章
- Python 黑帽编程大纲(变化中)
Python 黑帽编程大纲(预览版) 教程说明: 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Pytho ...
- Python黑帽编程 3.4 跨越VLAN
Python黑帽编程 3.4 跨域VLAN VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理 ...
- Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- Python黑帽编程 2.0 第二章概述
Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...
- Python黑帽编程2.1 Python编程哲学
Python黑帽编程2.1 Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...
- Python黑帽编程2.2 数值类型
Python黑帽编程2.2 数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型.长整型.布尔.双精度浮点.十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区 ...
随机推荐
- study reference
CVPR2018 ReID论文简评 2017CVPR ICCV和NIPS在Person Reidentification方向的相关工作小结 CVPR 2018 Person Re-ID相关论文 pre ...
- HDU 3934
/*这是用的有旋转卡壳的思想. 首先确定i,j,对k进行循环,知道找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环. 对j,k进行旋转,每次循环 ...
- uva 704
自己之前的不见了.. 这题是双向广搜即可过.. // Colour Hash (色彩缤纷游戏) // PC/UVa IDs: 110807/704, Popularity: B, Success ra ...
- POJ2391 Ombrophobic Bovines 网络流拆点+二分+floyed
题目链接: id=2391">poj2391 题意: 有n块草地,每块草地上有一定数量的奶牛和一个雨棚,并给出了每一个雨棚的容(牛)量. 有m条路径连接这些草地 ,这些路径是双向的, ...
- HDU 1429--胜利大逃亡(续)【BFS && 状态压缩】
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- linux下Oracle11g RAC搭建(七)
linux下Oracle11g RAC搭建(七) 六.安装Grid 启动GRID安装界面 方式一:redhat下调整分辨率 [root@node1 ~]# xhost + //授权 [ro ...
- eclipse+maven的web项目访问jsp乱码
在jsp中第一行加一句这个就不会乱码了 <%@ page language="java" import="java.util.*" pageEncodin ...
- vbs 脚本2
一些很恶作剧的vbs程序代码 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-16我要评论 恶作剧的vbs代码,这里提供的都是一些死循环或导致系统死机的vbs对机器没坏处,最多关机重启 ...
- Could not open ServletContext resource [/WEB-INF/Dispatcher-servlet.xml]
转自:https://blog.csdn.net/mafan121/article/details/44833201 配置spring时出现了如下错误: 默认的DispatcherServlet在初始 ...
- First Day Python介绍
前言:刚开通的博客,谢谢博客园平台,管理辛苦! Python介绍 Python是一门高级的.面向对象的.解释性.脚本语言. 高级语言:贴近开发者,对应底层语言,底层语言贴近机器:java.C#.php ...