zmail库是由国人制作的第三方库,它可以简单的发送和接收邮件。无须手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。
用zmail进行收取邮件尤其是带附件时比较方便,功能能进行强大扩展,比如按照时间、邮件主题进行匹配后获取、保存邮件。本次会给出一个完整的范例,并测试通过。
zmail在收取邮件是默认为邮件全部收取后进行匹配,速度、性能很差,容易假死,在窄带和大量邮件情况下容易翻车。故本范例对读取部分进行了功能和性能优化。
示范代码每次取10封(step=10)邮件,一直读取完所有符合条件(最近N天)的邮件并进行自动保存,避免邮箱过大等待超时,是功能优化后的读取版本,供大家参考。
【完整源码下载见 https://download.youkuaiyun.com/download/cdl3/88518767】
【入门】
Zmail仅支持python3,不需要任何外部依赖. 不支持python2.
$ pip3 install zmail
使用它之前,请保证
- 使用Python3
- 确保打开了邮箱的POP3和SMTP功能 (对于 @163.com 和 @gmail.com 你需要设置你的应用专用密码)
然后,剩下你需要做的就是import zmail即可
邮件消息体支持的常用字段
Subject :邮件主题
Content_text :text邮件内容
Content_html :html邮件内容
Attachments :附件
邮件常用方法
send_mail :发送邮件
get_latest:获取最新邮件
get_mail:依据id获取邮件
get_mails:根据条件获取邮件列表
get_headers:获取所有邮件头信息
stat:获取收件箱信息
zmail.show:展示邮件消息
【支持邮箱】
包括常见的126.com/163.com/qq.com/yeah.net/gmail.com/sina.com/outlook,也可以支持阿里、腾讯、网易、谷歌的企业邮箱。当然,也可以自定服务器地址进行额外支持。
本次给出了一个自定义邮件服务器配置的范例供参考。
下面是综合性范例,主要用于扩展下载邮件功能,对日期字段进行匹配,自动收取最近10天(N天)最新邮件,自动保存邮件正文(以文本文件格式和html两种格式保存)和附件,自动跳过已下载的邮件。
【示范下载代码】
import zmail
import os,time
import datetime
cur_path=os.getcwd()
def cnt_time(func):
import time
def inner(*args,**kwargs):
start_time=time.time()
res=func(*args,**kwargs)
end_time=time.time()
result=end_time-start_time
print('func time is %.3fs'%result)
return res
return inner

本文介绍了如何使用国人制作的zmail库进行邮件的发送和接收,特别强调了在处理大量邮件和性能优化方面的示例,包括按时间筛选和自动保存附件的功能。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



