python使用imap-tools模块下载邮件附件的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇文章给大家分享的是有关python使用imap-tools模块下载邮件附件的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最
千家信息网最后更新 2026年11月04日python使用imap-tools模块下载邮件附件的示例分析
本篇文章给大家分享的是有关python使用imap-tools模块下载邮件附件的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来.
环境: python3.8; imap-tools 0.39.0
需要pip 安装一下imap-tools模块
imap-tools模块是python的第三方扩展, 它使用标准库imaplib,并将常见的邮件处理事件封装,邮件处理起来代码短. 下面是个下载邮件附件的示例
from imap_tools import MailBoxwith 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爽多了.
补充:使用Python的imap和email模块读取邮件
SMTP发送邮件的博文很多,但完整读取邮件的较少,本文主要是Python3读取邮件的编码,同时使用BeautifulSoup解析邮件内容。
Python版本信息,如下:
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
代码
import emailimport imaplibfrom bs4 import BeautifulSoupdef main(): try: # 填写需要读取邮件服务器的imap的host和port,不知道请联系管理员 conn = imaplib.IMAP4_SSL(host='imap.xxx.com', port='993') # 读取邮件的用户名和密码 conn.login('xxx@qq.com', 'your password') # 默认选择收件箱 INBOX conn.select() # Recent\Seen参数不起作用,暂先读取所有邮件 status, data = conn.search(None, 'ALL') if status != 'OK': raise Exception('读取邮件发生错误') emailids = data[0].split() # 倒序读取邮件 mail_counts = len(emailids) for i in range(mail_counts-1, 0, -1): # 获取邮件信息 status, edata = conn.fetch(emailids[i], '(RFC822)') # Message对象 msg = email.message_from_bytes(edata[0][1]) # 标题 subject = email.header.decode_header(msg.get('subject')) # subject包含文档编码 default_code = subject[0][1] # print('Content_Type', msg.get_content_type()) ctype = msg.get_content_type() # 是否multipart类型,分别处理 if msg.is_multipart(): pl = msg.get_payload() for m in pl: ctype = m.get_content_type() if 'html' in ctype: # 注意decode参数,如果是True将解码base64/quoted-printable等格式编码内容,否则不解码 html = str(m.get_payload(decode=True), m.get('content-type').split('=')[1]) # BeautifulSoup解析网页 soup = BeautifulSoup(html, "lxml") divs = soup.select('body') for d in divs: # 提取所有文本内容 text = d.get_text(strip=True) print(text) else: html = str(msg.get_payload(decode=True), default_code) # BeautifulSoup解析网页 soup = BeautifulSoup(html, "lxml") # 提取body标签里面的所有文本内容 divs = soup.select('body') for d in divs: text = d.get_text(strip=True) print(text) except Exception as ex: print(ex) finally: # close conn.close() conn.logout()if __name__ == "__main__": main()以上就是python使用imap-tools模块下载邮件附件的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
邮件
模块
附件
内容
示例
参数
编码
分析
二进制
代码
信息
密码
就是
文本
更多
服务器
知识
第三方
篇文章
网页
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技创新与互联网经济
关于新基建和互联网科技
北京互联网科技公司
互联网科技集团
上海挚品互联网科技
奇酷互联网络科技
安徽鑫晟辉互联网科技
互联网科技公司做什么
互联网汽车科技小镇
互联网科技中介
湖南诚度互联网科技有限公司
互联网和黑科技的看法
互联网与医疗科技
开一家科技互联网公司需要多少钱
互联网保险科技创业
互联网科技创新的路径
北京市互联网新科技
陕西九四连强互联网科技有限公司
青岛易易互联网科技
北京瑞云互联网科技有限公司
互联网科技活动banner
鸠鸠互联网科技
工业互联网科技新基建
互联网金融与金融科技
狮子座互联网科技
有马互联网科技
人人互联网科技是培训
高科技互联网套路
互联网金融科技元年
江苏互联网智能科技软件