python使用imap-tools模块下载邮件中的附件

最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来.

环境: python3.8; imap-tools 0.39.0

需要pip 安装一下imap-tools模块

imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起来代码短. 下面是个下载邮件附件的示例

from imap_tools import MailBox

with MailBox("imap服务器名").login("账号", "密码") as mailbox:
    for msg in mailbox.fetch(limit=2,reverse=True):  # 我这里为了避免读取全部的邮件,加上了limit=2的匹配参数,读取两封邮件,按照最新接收的次序排序,进行测试; 
        for att in msg.attachments:  # msg为上一行取得的全部邮件
            if att.filename:    # 如果附件的文件名不为空
                att_data = att.payload # 获得附件的内容
                f = open(att.filename,'wb') # 用二进制打开,一般邮件附件都是二进制的.
                f.write(att_data)
                f.close()

就是这么短,用起来比imaplib爽多了.

 

posted @ 2021-03-28 02:38  歪理斜说  阅读(766)  评论(2编辑  收藏  举报