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使用7z解压软件备份文件脚本分享
Feb 21 Python
利用python批量检查网站的可用性
Sep 09 Python
Python调用C++程序的方法详解
Jan 24 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
python让列表倒序输出的实例
Jun 25 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
使用python实现简单五子棋游戏
Jun 18 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python3跳出一个循环的实例操作
Aug 18 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
Python面向对象编程之类的概念
Nov 01 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正则表达式之定界符和原子介绍
2012/10/05 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
javascript如何创建对象
2016/08/29 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
js实现简单页面全屏
2019/09/17 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python多线程下信号处理程序示例
2019/05/31 Python
python字典一键多值实例代码分享
2019/06/14 Python
python实现五子棋游戏
2019/06/18 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
django使用channels实现通信的示例
2020/10/19 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
毕业设计计划书
2014/01/09 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
个人借条范本
2015/05/25 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
MySQL查询学习之基础查询操作
2021/05/08 MySQL