邮件系列(二)python zmail接收带附件的邮件(功能优化版)

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

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值