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的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
Python如何实现转换URL详解
Jul 02 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
Django基于客户端下载文件实现方法
Apr 21 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
php中引用符号(&)的使用详解
2013/11/13 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
学习php中的正则表达式
2014/08/17 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
Python字符遍历的艺术
2008/09/06 Python
python脚本实现查找webshell的方法
2014/07/31 Python
深入理解python try异常处理机制
2016/06/01 Python
深入浅析python定时杀进程
2016/06/06 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python @property原理解析和用法实例
2020/02/11 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
如何学习Python time模块
2020/06/03 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
小学生班会演讲稿
2014/01/09 职场文书
交通安全月活动总结
2015/05/08 职场文书