返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/301701.html(转载时请注明来源链接)

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

猜你喜欢
  • python使用imap-tools模块下载邮件附件的示例分析
    本篇文章给大家分享的是有关python使用imap-tools模块下载邮件附件的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近在做一些email相关的办公自动化项目...
    99+
    2023-06-22
  • python使用imap-tools模块下载邮件附件的示例
    最近在做一些email相关的办公自动化项目,发现一个第三方模块imap-tools不错, 网上没有啥相关介绍,所以记录下来. 环境: python3.8; imap-tools 0....
    99+
    2024-04-02
  • 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实现邮件自动下载的示例详解
    开始码代码之前,我们先来了解一下三种邮件服务协议: 1、SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议。相当于中转站,将邮件...
    99+
    2024-04-02
  • python使用requests模块下载文件并获取进度提示
    使用python3写了一个获取某网站文件的小脚本,使用了requests模块的get方法得到内容,然后通过文件读写的方式保存到硬盘同时需要实现下载进度的显示 安装模块pip3 install requests&...
    99+
    2023-01-31
    进度 模块 提示
  • python文件目录操作之os模块的示例分析
    这篇文章将为大家详细讲解有关python文件目录操作之os模块的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几...
    99+
    2023-06-15
  • python使用电子邮件模块smtplib的方法
    Smptp类定义:smtplib.SMTP(host[,port[,local_hostname[,,timeout]]]),作为SMTP的构造函数,功能是与smtp服务器建立连接,在连接成功后,就可以向服...
    99+
    2022-06-04
    模块 电子邮件 方法
  • Retrofit+Rxjava下载文件进度的示例分析
    这篇文章主要为大家展示了“Retrofit+Rxjava下载文件进度的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Retrofit+Rxjava下载文件进度的示例分析”这篇文章吧。准备...
    99+
    2023-05-30
    retrofit rxjava
  • Nodejs文件模块中fs.mkdir和fs.rmdir的示例分析
    这篇文章主要为大家展示了“Nodejs文件模块中fs.mkdir和fs.rmdir的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nodejs文件模块中...
    99+
    2024-04-02
  • python的numpy模块使用实例分析
    今天小编给大家分享一下python的numpy模块使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Numpy是Nu...
    99+
    2023-06-30
  • js下载文件并修改文件名的示例分析
    这篇文章主要介绍了js下载文件并修改文件名的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用js下载文件,使用<a>标签...
    99+
    2024-04-02
  • 简单介绍Python实现邮件自动下载的示例
    本篇文章给大家带来了关于Python的相关知识,详细介绍了如何利用Python语言实现邮件自动下载以及附件解析功能,文中的示例代码讲解详细,感下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】开始码代码之前,我们先来...
    99+
    2022-08-17
    python
  • Python垃圾邮件的逻辑回归分类示例分析
    这篇文章主要介绍“Python垃圾邮件的逻辑回归分类示例分析”,在日常操作中,相信很多人在Python垃圾邮件的逻辑回归分类示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python垃圾邮件的逻辑回归...
    99+
    2023-06-21
  • Linux文件系统安装模块化的示例分析
    小编给大家分享一下Linux文件系统安装模块化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以Fedora8下面安装minix文件系统为例:为了保证与系...
    99+
    2023-06-17
  • Python使用poplib模块和smtplib模块收发电子邮件的教程
    poplib模块接收邮件 python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。 POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然会回...
    99+
    2022-06-04
    模块 收发电子邮件 教程
  • JavaScript中实现大文件并行下载的示例分析
    小编给大家分享一下JavaScript中实现大文件并行下载的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在 JavaScript 中如何实现并发控制 这...
    99+
    2023-06-15
  • 微信小程序模块化和文件作用域的示例分析
    小编给大家分享一下微信小程序模块化和文件作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文件作用域在JavaScript文件中声明的变量和函数只在该...
    99+
    2023-06-26
  • AngularJS中使用模块组织代码的示例分析
    本篇文章给大家分享的是有关AngularJS中使用模块组织代码的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。下载 modu...
    99+
    2024-04-02
  • node.js学习之事件模块Events的使用示例
    前言 本文主要给大家介绍了关于node.js事件模块Events使用的一些示例,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 环境:Node v8.2.1; Npm v5.3.0; OS...
    99+
    2022-06-04
    示例 模块 事件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作