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 输出一个两行字符的变量
Feb 05 Python
跟老齐学Python之??碌某?? target=
Sep 12 Python
Python中的pack和unpack的使用
Mar 12 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
python实现决策树ID3算法的示例代码
May 30 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
python 字典操作提取key,value的方法
Jun 26 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
Python3 全自动更新已安装的模块实现
Jan 06 Python
keras 读取多标签图像数据方式
Jun 12 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
Python Django搭建文件下载服务器的实现
May 10 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
进一步理解Python中的函数编程
2015/04/13 Python
Django中处理出错页面的方法
2015/07/15 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
通过代码实例了解Python sys模块
2020/09/14 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
error和exception有什么区别
2012/10/02 面试题
乳制品整治工作方案
2014/05/29 职场文书
通知的写法
2015/04/23 职场文书
迎新年主持词
2015/07/06 职场文书
2015小学师德工作总结
2015/07/21 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python