Zmail-简单易用的python邮件模块
GitHub地址: github.com/ZYunH/zmail
觉得对你有用请Star或者Fork!
介绍
Zmail 允许你发送和接受邮件尽可能的简单。你不需要去检查你的服务器地址、端口以及自己构造MIME对象,使用Zmail,你只需要关注你的邮件内容即可。
安装
Zmail仅支持python3,不需要任何其他外部依赖. 不支持python2.
选项一:通过pip安装(推荐)
$ pip3 install zmail
复制代码
或者
$ pip install zmail
复制代码
这样做也意味着此pip版本是支持python3的。
选项二: 从GitHub下载安装
你可以下载Zmail的master分支,将其解压,切换到相应目录,然后
$ python3 setup.py install
复制代码
特性
- 自动寻找服务器地址以及端口
- 自动使用可靠的链接协议
- 自动将一个python字典映射成MIME对象(带有附件的)
- 自动添加头文件以及localhostname来避免服务器拒收你的邮件
- 轻松自定义你的头文件
- 支持使用HTML作为邮件内容
- 仅需python>=3.5,你可以将其嵌入你的项目而无需其他的依赖
使用须知
使用它之前,请保证
- 使用Python3
- 确保打开了邮箱的POP3和SMTP功能 (对于 @163.com 和 @gmail.com 你需要设置你的应用专用密码)
然后,剩下你需要做的就是import zmail即可
使用示例
发送你的邮件
import zmail
mail = {'subject': 'Success!', # Anything you want.'content': 'This message from zmail!', # Anything you want.'attachments': '/Users/zyh/Documents/example.zip', # Absolute path will be better.
}server = zmail.server('yourmail@example.com’, 'yourpassword')server.send_mail('yourfriend@example.com', mail)
复制代码
给一个列表的收件人发件
server.send_mail(['yourfriend@example.com','12345@example.com'], mail)
复制代码
发送HTML作为邮件内容
mail = {'subject': 'Success!', # Anything you want.'content_html': zmail.get_html('/Users/example.html'), # Absolute path will be better.'attachments': '/Users/zyh/Documents/example.zip', # Absolute path will be better.
}
server.send_mail('yourfriend@example.com',mail)
复制代码
或者
with open('/Users/example.html','r') as f:content_html = f.read()
mail = {'subject': 'Success!', # Anything you want.'content_html': content_html, 'attachments': '/Users/zyh/Documents/example.zip', # Absolute path will be better.
}
server.send_mail('yourfriend@example.com',mail)
复制代码
取回你的邮件
取得最新的邮件
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='GitHub',after='2018-1-1',sender='github')
复制代码
示例中, 如果 'GitHub' 在邮件的主题中,这封邮件将会被匹配, 例如' [GitHub] Your password has changed'
sender亦是如此
得到所有邮件的头文件信息.一个由字典组成的列表,每个字典包含了所有能够提取的头文件.
mail_info = server.get_info()
复制代码
得到邮箱的信息
mailbox_info = server.stat()
复制代码
结果为包含两个整型的元组: (邮件的数量, 邮箱的大小)
.
解析你的邮件
在zmail中,接收到的邮件被映射为一个字典,你可以通过访问python字典的形式来访问你的邮件,例如
subject = mail['subject']
复制代码
展示你的邮件,使用 zmail.show()
import zmail
server = zmail.server('yourmail@example.com‘, 'yourpassword')
mail = server.get_latest()
zmail.show(mail)
复制代码
输出 :
content-type multipart/mixed
subject Success!
to zmail_user
from zmail<zmail@126.com>
date 2018-2-3 01:42:29 +0800
boundary ===============9196441298519098157==
content ['This message from zmail!']
contents [[b'Content-Type: text/plain; charset="utf-8"', b'MIME-Version: 1.0', b'Content-Transfer-Encoding: base64', b'', b'VGhpcyBtZXNzYWdlIGZyb20gem1haWwh', b'']]
attachments None
id 5
复制代码
邮件的结构
- content-type: 邮件内容的类型
- subject: 邮件主题
- to:收件人
- from:寄件人
- date: 年-月-日 时间 时区
- boundary: 如果邮件为multiple parts,你可以得到其分界线
- content: 邮件的文本内容(仅在text/plain时可以被解析)
- contents: 邮件的body,里面包含着由分界线分割的每一个段落
- attachments: None 或者 [['附件名称;编码方式','附件的二进制内容']...]
- id: 在邮箱中的id
获得附件
import zmail
server = zmail.server('yourmail@example.com‘, 'yourpassword')
mail = server.get_latest()
zmail.get_attachment(mail)
复制代码
你可以重命名你的附件,使用
zmail.get_attachment(mail,'example.zip')
复制代码
支持的邮件服务商
列表中的邮件服务商已经被测试可正常使用
如果你的邮箱不在此列,请不要担心,目前尚未发现不支持的邮箱.如果你发现任何问题,请在GitHub上告知于我
服务商地址 | 发送邮件 | 取回邮件 | 备注 |
---|---|---|---|
@163.com | ✓ | ✓ | 需要应用专用密码 |
@qq.com | ✓ | ✓ | POP3 需要应用专用密码 |
@126.com | ✓ | ✓ | |
@yeah.net | ✓ | ✓ | |
@gmail.com | ✓ | ✓ | 需要应用专用密码 |
@sina.com | ✓ | ✓ | |
@outlook | ✓ | ✓ |
API
server = zmail.server('user@example','password')
SMTP
- server.send_mail([recipient,], mail)
POP3
- server.get_mail(which)
- server.get_mails(subject, sender, after, before)
- server.get_latest()
- server.get_info()
- server.stat()
Parse mail
- server.get_attachment(mail)
- subject
- content
- content_html
- from
- to
Other
- zmail.show()
Zmail-简单易用的python邮件模块相关推荐
- 分享一个简单易用的python并行模块【PP模块】
目前个人计算机大都是多核的,但是在运行python程序的时候会发现实际上只有一个核心(CPU)在跑代码,另外几个核心都在偷懒呢,如下图 并行计算的目的是将所有的核心都运行起来以提高代码的执行速度,在p ...
- python邮件模块_Python收发邮件模块,用,来,发送,接收
用Python来发送接收邮件模块 python实现发送和接收邮件功能主要用到poplib和smtplib模块. poplib用于接收邮件,而smtplib负责发送邮件. # -- coding :ut ...
- python邮件模块_python 邮件模块
Python内置对SMTP的支持,其中细化为smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件,我们仅仅需要编辑相关配置即可 1. 获取认证 在获取认证这一块我们需 ...
- 简单易用的Python爬虫,批量下载P站照片
Pikax 2.0 当当当!万众瞩目的2.0版本登场了 其实并没有几个人用 并且上传到了pypi,安装即用: pip install Pikax 创建一个文件!然后加点东西: 下载当日排行榜前20的插 ...
- 【Python 有用的知识】——简单易操作的python小知识
点个赞留个关注吧!! 目录 一.获取电脑用户名 二.字符串大小写 三.运算条件(|,&==or,and) 四.判断是否联网 五.使用默认浏览器打开指定网址 一.获取电脑用户名 import g ...
- 简单易用NLP框架Flair发布新版本!(附教程)
机器之心编辑,参与:路. Flair 是 Zalando Research 开发的一款简单易用的 Python NLP 库,近日,Flair 0.4 版发布! Flair 具备以下特征: 强大的 NL ...
- python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!
之前我们介绍过如何在Python中安装第三方的包: Python以第三方包丰富而著称,你想要的功能几乎都可以通过pip命令安装,避免什么都要自己重新造轮子尬尴. 但是pip安装有两个常见问题,第一是下 ...
- pip 离线安装_安装不上python的模块怎么办?别怕,我这有妙招!
之前我们介绍过如何在Python中安装第三方的包: Python以第三方包丰富而著称,你想要的功能几乎都可以通过pip命令安装,避免什么都要自己重新造轮子尬尴. 但是pip安装有两个常见问题,第一是下 ...
- python 发送邮件正文字体设置_python 文字 坐标python smtplib模块发送SSL/TLS安全邮件实例...
python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail f ...
最新文章
- 卓金武《MATLAB在数学建模中的应用》 第2版
- 单行、多行文本超出显示省略号
- 这是对R的误解!R的应用原来这么广!
- mongo:(3)windows上mongoDB安装
- 【大师分享】人工智能始发力,医学影像更清晰
- Spring 笔记
- 网络安全系列之四十六 在IIS6中配置目录安全性
- Android APK反编译详解 .
- python是什么课程-Python课程包括哪些内容?
- Spring Framework 4.2 中的新功能和增强功能
- 巴基斯坦削减光伏发电上网电价或影响清洁能源发展前景
- 使用Xilisoft iPad Magic Platinum for Mac将任何视频/音频转换和传输到 iPad/iPod/iPhone/iTunes?
- Fast DDS Fast DDS主要包括以下内容DDS API、Fast DDS-Gen、RTPS Wire Protocol
- Jeesite进行打包(打成war包)
- QTtabbar只有几个选项, 没有“Qttabar”这个选项
- 10个免费的在线Markdown编辑器
- 2020五四青年节 | 青年人在美团是怎样成长的?
- 【LeetCode343】剪绳子(动态规划)
- [bzoj1984]月下“毛景树” 树链剖分
- 安卓 电子围栏_手机电子围栏是什么
热门文章
- linux服务器分区方案
- android分享助手下载地址,语音导出分享助手手机版|语音导出分享助手安卓版下载 v2.1 - 跑跑车安卓网...
- odbc mysql导出access_将mysql数据导入access数据库
- mysql存储过程类_mysql存储过程类
- bash 脚本_实用的 bash 自定义脚本,快速提效工作流程
- 什么是Reconciliation?
- mysql报错01427_ORA-01427问题的分析和解决
- 合成孔径雷达算法与实现_地基干涉合成孔径雷达图像非线性大气相位补偿方法...
- MyBatis框架parameterType为哈希类型的别名映射和resultMap映射
- 上海计算机应用基础自考上机,上海2012年自考《计算机应用基础》上机考核大纲...