iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python使用imap-tools模块下载邮件附件的示例分析
  • 419
分享到

python使用imap-tools模块下载邮件附件的示例分析

2023-06-22 00:06:27 419人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章给大家分享的是有关python使用imap-tools模块下载邮件附件的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近在做一些email相关的办公自动化项目

本篇文章给大家分享的是有关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模块下载邮件附件的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网Python频道。

--结束END--

本文标题: python使用imap-tools模块下载邮件附件的示例分析

本文链接: https://www.lsjlt.com/news/301701.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python使用imap-tools模块下载邮件附件的示例分析
    本篇文章给大家分享的是有关python使用imap-tools模块下载邮件附件的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近在做一些email相关的办公自动化项目...
    99+
    2023-06-22
  • python使用imap-tools模块下载邮件附件的示例
    最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来. 环境: python3.8; imap-tools 0....
    99+
    2022-11-12
  • nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
    nodemailer是nodejs中的邮件发送模块,本文使用的版本为2.5.0 --下载模块 npm install nodemailer npm下载模块后,在项目中引入就可以使用: var no...
    99+
    2022-06-04
    示例 邮件发送 模块
  • iOS12系统应用发送邮件中附件的示例分析
    这篇文章主要介绍iOS12系统应用发送邮件中附件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!iOS12系统应用发送邮件中的附件iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档、图片...
    99+
    2023-06-05
  • python文件目录操作之os模块的示例分析
    这篇文章将为大家详细讲解有关python文件目录操作之os模块的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几...
    99+
    2023-06-15
  • python使用requests模块下载文件并获取进度提示
    使用python3写了一个获取某网站文件的小脚本,使用了requests模块的get方法得到内容,然后通过文件读写的方式保存到硬盘同时需要实现下载进度的显示 安装模块pip3 install requests&...
    99+
    2023-01-31
    进度 模块 提示
  • 微信小程序模块化和文件作用域的示例分析
    小编给大家分享一下微信小程序模块化和文件作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文件作用域在JavaScript文件中声明的变量和函数只在该...
    99+
    2023-06-26
  • Python集成C#实现界面操作下载文件功能的示例分析
    这篇文章给大家分享的是有关Python集成C#实现界面操作下载文件功能的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、这个功能是怎么样的我很熟悉用 C# & WinForm 的方式开发界面,现...
    99+
    2023-06-29
  • Python使用email模块对邮件进行编码和解码的实例教程
    解码邮件 python自带的email模块是个很有意思的东西,它可以对邮件编码解码,用来处理邮件非常好用。 处理邮件是一个很细致的工作,尤其是解码邮件,因为它的格式变化太多了,下面先看看一个邮件的源文件: ...
    99+
    2022-06-04
    实例教程 模块 邮件
  • Vue中工程模板文件使用webpack打包配置的示例分析
    这篇文章主要介绍Vue中工程模板文件使用webpack打包配置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、githubgithub地址:https://github....
    99+
    2022-10-19
  • 如何使用Maven Archetype插件构建Maven工程原型模板的示例分析
    这篇文章将为大家详细讲解有关如何使用Maven Archetype插件构建Maven工程原型模板的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。创建原型模板在空目录运行archetype:gene...
    99+
    2023-05-30
    maven archetype
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作