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实现的Google IP 可用性检测脚本
Apr 23 Python
使用Python来开发微信功能
Jun 13 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
django2.0扩展用户字段示例
Feb 13 Python
python库matplotlib绘制坐标图
Oct 18 Python
python getopt模块使用实例解析
Dec 18 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
python三子棋游戏
May 04 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
Wordpress php 分页代码
2009/10/21 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python中的元类编程入门指引
2015/04/15 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
python针对excel的操作技巧
2018/03/13 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
python之消除前缀重命名的方法
2018/10/21 Python
python制作简单五子棋游戏
2019/06/18 Python
python——全排列数的生成方式
2020/02/26 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
用Python 执行cmd命令
2020/12/18 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
JSF的标签库有哪些
2012/04/27 面试题
小学五年级学生评语
2014/04/22 职场文书
质量安全标语
2014/06/07 职场文书
2014年学校工作总结
2014/11/20 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL
Rust中的Struct使用示例详解
2022/08/14 Javascript