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多线程threading.Lock锁用法实例
Nov 01 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
Python实现DDos攻击实例详解
Feb 02 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
django中ImageField的使用详解
Dec 21 Python
Python创建简单的神经网络实例讲解
Jan 04 Python
Django项目在pycharm新建的步骤方法
Mar 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
解析php入库和出库
2013/06/25 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Vue项目打包编译优化方案
2020/09/16 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
理解Python中的With语句
2016/03/18 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
详解python的argpare和click模块小结
2019/03/31 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
JPA的优势都有哪些
2013/07/04 面试题
优秀村官事迹材料
2014/01/10 职场文书
白岩松演讲
2014/05/21 职场文书
六年级小学生评语
2014/12/26 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
二年级数学教学反思
2016/02/16 职场文书