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和shell变量互相传递的几种方法
Nov 20 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Python3标准库总结
Feb 19 Python
Django实现学员管理系统
Feb 26 Python
详解Python 切片语法
Jun 10 Python
python字典的常用方法总结
Jul 31 Python
python面向对象 反射原理解析
Aug 12 Python
Python实现计算图像RGB均值方式
Jun 04 Python
Python检测端口IP字符串是否合法
Jun 05 Python
python_tkinter弹出对话框创建
Mar 20 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
php基础知识:类与对象(1)
2006/12/13 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
Javascript - HTML的request类
2007/01/09 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
python处理大数字的方法
2015/05/27 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
大四学生毕业自荐信
2013/11/07 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
关于学习的演讲稿
2014/05/10 职场文书
村级换届选举方案
2014/05/10 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
JavaScript 原型与原型链详情
2021/11/02 Javascript