python Zmail模块简介与使用示例


Posted in Python onDecember 19, 2020

介绍

Zmail 使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。此外,使用一个python字典来代表邮件内容也更符合直觉

安装

Zmail仅支持python3,不需要任何外部依赖. 不支持python2.

pip3 install zmail

特性 

  • 自动寻找服务器地址以及端口
  • 自动使用可靠的链接协议
  • 自动将一个python字典映射成MIME对象(带有附件的)
  • 自动添加头文件以及localhostname来避免服务器拒收你的邮件
  • 轻松自定义你的头文件
  • 支持使用HTML作为邮件内容
  • 仅需python>=3.5,你可以将其嵌入你的项目而无需其他的依赖

使用须知

使用它之前,请保证

  • 使用Python3
  • 确保打开了邮箱的POP3和SMTP功能 (对于 @163.com 和 @gmail.com 你需要设置你的应用专用密码)

然后,剩下你需要做的就是import zmail即可

使用示例

发送你的邮件

import zmail

# 你的邮件内容
mail_content = {
 "subject":"success!", # 邮件主题
 "content_text":"This message from zmail", # 邮件内容
 "attachments":r"D:\test.docx", # 邮件附件
}

# 使用你的邮件账户名和密码登录服务器
server = zmail.server("XXXXXX@163.com", "XXXXXX")

# 发送邮件
server.send_mail('yourfriend@example.com', mail_content)

给多个信箱发件,修改发送邮件 即可,其他内容同上

# 发送邮件

server.send_mail(['555555@qq.com','666666@qq.com'],mail_content)

发送HTML作为邮件内容

mail = {
 'subject': 'Success!', # 邮件主题
 'content_html': ['HTML CONTENT'], # HTML格式的邮件内容 
 'attachments': '/Users/zyh/Documents/example.zip', # 邮件附件
}
server.send_mail('yourfriend@example.com',mail)

或者

with open('/Users/example.html','r') as f:
 content_html = f.read()
mail = {
 'subject': 'Success!', 
 'content_html': content_html, 
 'attachments': '/Users/zyh/Documents/example.zip', 
}
server.send_mail('yourfriend@example.com',mail)
  • 自定义你的server

如果zmail不能正常工作,你可以自定义server的配置

server = zmail.server('username','password',smtp_host='smtp.163.com',smtp_port=994,smtp_ssl=True,pop_host='pop.163.com',pop_port=995,pop_tls=True)

取回你的邮件

  • 取得最新的邮件
import zmail
server = zmail.server('yourmail@example.com', 'yourpassword')
mail = server.get_latest()
  • 依据id取回邮件
mail = server.get_mail(2)
  • 依据 (subject,after,before,sender)取回一个列表的邮件
mail = server.get_mails(subject='163',after='2018-1-1',sender='github')

示例中, 如果 '163' 在邮件的主题中,这封邮件将会被匹配, 例如' [163] Your password has changed'

邮件的结构

  • content-type: 邮件内容的类型
  • subject: 邮件主题
  • to:收件人
  • from:寄件人
  • date: 年-月-日 时间 时区
  • boundary: 如果邮件为multiple - - - parts,你可以得到其分界线
  • content: 邮件的文本内容(仅在text/plain时可以被解析)
  • contents: 邮件的body,里面包含着由分界线分割的每一个段落
  • attachments: None 或者 [['附件名称;编码方式','附件的二进制内容']...]
  • id: 在邮箱中的id

项目地址: 

GitHub:https://github.com/ZYunH/zmail 

以上就是python Zmail模块简介与使用示例的详细内容,更多关于python Zmail模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
简单介绍Python中用于求最小值的min()方法
May 15 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
对python函数签名的方法详解
Jan 22 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
Python内存管理实例分析
Jul 10 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
python语言是免费还是收费的?
Jun 15 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
python中实现栈的三种方法
Dec 19 #Python
python中实现词云图的示例
Dec 19 #Python
python 实现图片批量压缩的示例
Dec 18 #Python
python 基于opencv实现高斯平滑
Dec 18 #Python
python爬取代理ip的示例
Dec 18 #Python
用Python 执行cmd命令
Dec 18 #Python
Django用内置方法实现简单搜索功能的方法
Dec 18 #Python
You might like
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
javascript时间函数大全
2014/06/30 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
python实现的udp协议Server和Client代码实例
2014/06/04 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
小学家长通知书评语
2014/12/31 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
建国大业电影观后感
2015/06/01 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js