下载指定主题的邮箱附件

import time
import re
import imaplib, email, os
import datetime
from email.header import decode_header
def IMAP_Downemail(_email, _password, _server, _dir, startdate, enddate,pattern):exts=['.xls', '.xlsx'] #指定附件后缀print("当前邮箱:{}".format(_email))mailList=[]#已下载的文件名列表conn = imaplib.IMAP4_SSL(_server, 993)#获取附件列表print("身份认证...")try:# 用户名、密码,登陆conn.login(_email, _password)login_success = Trueexcept:login_success = Falseif login_success:#print("邮箱{}登录成功!".format(_email))# 选则收件箱,只读conn.select("INBOX",readonly = True)# 提取文件夹中未读邮件的编号resp, mails = conn.search(None,"UNSEEN")# 邮件编号列表msgList = mails[0].split()# 从最近的邮件开始获取for i in reversed(range(len(msgList))):try:resp, data = conn.fetch(msgList[i], '(RFC822)')emailbody = data[0][1]mail = email.message_from_bytes(emailbody)subject=mail['Subject']subject=decode_header(subject)[0][0].decode(decode_header(subject)[0][1])# 解析邮件日期try:mail_date = time.strptime(mail.get("Date")[0:24], '%a, %d %b %Y %H:%M:%S')  # 格式化收件时间except:mail_date = time.strptime(mail.get("Date"), '%d %b %Y %H:%M:%S +0800')  # 格式化收件时间mail_date = time.strftime("%Y%m%d", mail_date)startdate = startdatestopdate = enddate#筛选主题if not( bool(re.search(pattern,subject))):continue     for part in mail.walk():if part.get_content_maintype() == 'multipart':continueif part.get('Content-Disposition') is None:continuefileName = part.get_filename()# 如果文件名为纯数字、字母时不需要解码,否则需要解码try:fileName = decode_header(fileName)[0][0].decode(decode_header(fileName)[0][1])except:pass# 只获取指定拓展名的附件extension = os.path.splitext(os.path.split(fileName)[1])[1]if extension not in exts:continue#将下载的邮件标记为已读conn.store((msgList[i]), '+FLAGS', '(\\Seen)')# 如果获取到了文件,则将文件保存在指定的目录下if fileName:if not os.path.exists(_dir):os.makedirs(_dir)filePath = os.path.join(_dir, fileName)fp = open(filePath, 'wb')fp.write(part.get_payload(decode=True))fp.close()mailList.append(fileName)print("已下载文件:{}".format(fileName))print(mailList)except:continueconn.close()conn.logout()else:print("邮箱{}登录失败!".format(_email))return len(mailList) #返回下载的附件数num=IMAP_Downemail("xx@xx.com","password","imap.xxx.com", "文件保存位置", "20221201", "20230108","主题")
print(num)

下载指定主题的邮箱附件相关推荐

  1. python 批量下载指定时间段的邮箱附件

    邮箱附件下载 在收到很多人发的邮件时,一个一个的接收附件比较麻烦,考虑使用python实现指定日期邮件附件的下载 首先需要开启邮箱的pop协议,一般在设置里,以QQ邮箱为例,设置后会给个密码,这个就是 ...

  2. python程序下载腾讯企业邮箱附件_python 发送邮件 QQ+腾讯企业邮箱

    一.使用QQ邮箱或者腾讯企业邮箱 python 发送邮件属于网络编程方向的,在工作中,我需要经常用邮件来检测我的程序运行状况.使用起来十分方便,这里我就用腾讯企业邮箱作为我的收发邮箱来使用. 使用py ...

  3. python程序下载腾讯企业邮箱附件_python3使用腾讯企业邮箱发送邮件的实例

    1.腾讯企业邮箱SMTP服务器地址:smtp.exmail.qq.com,ssl端口为:465 2.确保腾讯企业邮箱中开启了SMTP服务: 3.示例代码: #!/usr/bin/env python3 ...

  4. python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...

    之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...

  5. python下载邮箱附件_基于Python3 下载邮箱附件,并解压到指定文件夹

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -*- encoding: gbk -*- # 目前只测试过网易163邮箱,qq邮箱时间格式与163有 ...

  6. python实现自动批量下载邮箱附件--GUI

    一.需求描述 能根据关键字和时间段下载指定的邮箱文件:word,pdf,xls.xlxs,zip,rar 二.系统设置 1.邮箱需要开启POP3服务 举例网易邮箱: (1)进入到网易邮箱官网,&quo ...

  7. Asp.Net 下载邮箱附件(随手笔记)

    下载QQ.outllook.网易邮件附件 解决方案 1.注册QQ邮箱,并开启pop3 2.下载并引用程序集DLL:OpenPop.dll 3.创建EmailHelper对象 4.验证邮箱是否登录成功 ...

  8. 【Python】自动化办公-outlook邮箱处理(获取邮箱附件)/通过下载链接自动下载

    outlook邮箱处理-获取邮箱附件 #先引入outlook import win32com.client outlook = win32com.client.Dispatch("Outlo ...

  9. 企业邮箱能传多大的附件?企业邮箱附件大小有限制吗?

    企业邮箱是公司初创时常用的办公方式,工作安排.工作汇报.合同.发票等都需要使用到邮件.其中企业邮箱附件功能是大家常用且尤为关注的,分超大附件及普通附件.针对大文件的上传方法,下面小编具体分享下~ 企业 ...

最新文章

  1. 什么是Low Code ? 居然能威胁到专业程序员?
  2. 【团队管理】改造团队成员?
  3. vue中style的scoped属性的设计方式
  4. MVP on Board 没用小技巧
  5. JavaSE03: Arrays工具类的使用及简单数组算法
  6. ​为什么你应该申请去小型的初创公司实习?
  7. c# 中实用包,实用dll。
  8. CMD窗口居中的方法(转)
  9. QGIS安装与使用教程
  10. HP服务器远程管理工具iLO详细介绍
  11. 计算机怎么快速匹配,四种方法教您如何在Excel中快速查找重复数据
  12. Dynamics CRM 365零基础入门学习(五)权限管理
  13. 单片机c语言计算器,基于STC89C52单片机的计算器的设计.doc
  14. mPass 微服务开发平台
  15. java抠图边框颜色处理_ps抠图边缘颜色怎么处理
  16. 2020年webpack面试题
  17. HTTP Cache(缓存)
  18. 量化对冲基金的国内发展史
  19. GolangBlog ModuleSeries - Part 2 | Migrating to Go Modules
  20. 数据转换软件_数据转换

热门文章

  1. 计算机软件类 论文格式,2018年软件工程硕士论文格式要求
  2. 近距离触摸Mango
  3. 安科瑞AMB300系列母线槽红外测温解决方案
  4. 使用 Stripes、MyBatis 和 Derby 创建 Java Web 应用程序
  5. quartz动态增删改查
  6. java定时任务增删改查_实现Quartz的动态增删改查
  7. Windows Server 2019 新功能概述
  8. ROS学习笔记-log日志以及输出工具(rqt_console)
  9. 1069 微博转发抽奖 (极简)
  10. 财务工作人员的实在助手,属于你的RPA神器