python Zmail模块简介与使用示例
作者:德辰 发布时间:2023-07-23 23:42:37
介绍
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
来源:https://www.cnblogs.com/zhouyxh/p/12320708.html
猜你喜欢
- 本次薯片会讨论了关于分类与类型的问题。怎么找一个item?页面导航一般分类为主,在具体的分类展示下选择类型:典型例子:炫铃(QQ客户端)当只
- 在本文中,我将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识。 关于索引的常识 影响到数据
- 本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。 1. 获取所有可用的模块 -
- Frontpage中的回车键有三种:enter、shift+enter、ctrl+enter。enter键对应于HTML中的<p>
- 年前帮manager 招GUI设计实习生 (PS. 这个实习生职位依然open,欢迎有兴趣的同学来投,邮箱jj.ying [at] hp.c
- 一、日期类型:对于SQL Server 2008 来说(因为2000甚至2005已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使
- 字符串Go语言中的字符串以原生数据类型出现。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容
- 阅读:Mootools常用方法扩展(三) 继续Mootools常用方法扩展,这次是Window类上的扩展,也就是全局函数。方法:$param
- 在web开发中常常要使用js,为了提高效率一般都会制作js的类文件。这样在使用中更新复用都很方便。下面按照我工作中的一个案例,介绍如何定义j
- 简介模板方法模式,是行为型的设计模式。定义一个操作中的算法的骨架,而将一些步骤延迟到子类当中,使得子类可以不改变一个算法的结构即可重新定义该
- 细线边框是网页中定位区分内容常用的一种方法,配合特定图片的使用,往往能够达到不错的效果,那么如何制作细线边框呢?asp之家注:现在要实现这个
- 在ASP.NET2.0通过SMTP的验证发送EMAIL ,代码如下:’Create a new MailMes
- 复制代码 代码如下: public partial class CMS_DBDataContext { partial void OnCre
- 先看看单条 SQL 语句的分页 SQL 吧。 方法1: 适用于 SQL Server 2000/2005 代码如下:SELECT TOP 页
- 看了很多介绍javascript面向对象技术的文章,很晕.为什么?不是因为写得不好,而是因为太深奥.javascript中的对象还没解释清楚
- 按单字节计算字符串的长度,汉字算两个字节。<script type="text/JavaScript"
- 如果你经常浏览网页一定见过很多网站在form表单中的文本域(textarea)中添加了的背景图片,一般是使用网站的logo,我记得我最早注意
- 这个问题已经不是什么新鲜问题了,网上也有大把的教程,但大多数是授人以鱼,而不授人以渔,经过辛苦的资料收集,思考,调试,整理,我基本上已经把这
- EXISTS该函数返回集合中第一个元素的索引,如果集合为空,返回NULLNULLNULLCollection.EXISTS(index)CO
- 1.执行cmd命令,不显示执行过程中弹出的黑框def run_cmd( cmd_str='', echo_print=1):