下载指定主题的邮箱附件
下载指定主题的邮箱附件
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)
下载指定主题的邮箱附件相关推荐
- python 批量下载指定时间段的邮箱附件
邮箱附件下载 在收到很多人发的邮件时,一个一个的接收附件比较麻烦,考虑使用python实现指定日期邮件附件的下载 首先需要开启邮箱的pop协议,一般在设置里,以QQ邮箱为例,设置后会给个密码,这个就是 ...
- python程序下载腾讯企业邮箱附件_python 发送邮件 QQ+腾讯企业邮箱
一.使用QQ邮箱或者腾讯企业邮箱 python 发送邮件属于网络编程方向的,在工作中,我需要经常用邮件来检测我的程序运行状况.使用起来十分方便,这里我就用腾讯企业邮箱作为我的收发邮箱来使用. 使用py ...
- python程序下载腾讯企业邮箱附件_python3使用腾讯企业邮箱发送邮件的实例
1.腾讯企业邮箱SMTP服务器地址:smtp.exmail.qq.com,ssl端口为:465 2.确保腾讯企业邮箱中开启了SMTP服务: 3.示例代码: #!/usr/bin/env python3 ...
- python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...
之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...
- python下载邮箱附件_基于Python3 下载邮箱附件,并解压到指定文件夹
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # -*- encoding: gbk -*- # 目前只测试过网易163邮箱,qq邮箱时间格式与163有 ...
- python实现自动批量下载邮箱附件--GUI
一.需求描述 能根据关键字和时间段下载指定的邮箱文件:word,pdf,xls.xlxs,zip,rar 二.系统设置 1.邮箱需要开启POP3服务 举例网易邮箱: (1)进入到网易邮箱官网,&quo ...
- Asp.Net 下载邮箱附件(随手笔记)
下载QQ.outllook.网易邮件附件 解决方案 1.注册QQ邮箱,并开启pop3 2.下载并引用程序集DLL:OpenPop.dll 3.创建EmailHelper对象 4.验证邮箱是否登录成功 ...
- 【Python】自动化办公-outlook邮箱处理(获取邮箱附件)/通过下载链接自动下载
outlook邮箱处理-获取邮箱附件 #先引入outlook import win32com.client outlook = win32com.client.Dispatch("Outlo ...
- 企业邮箱能传多大的附件?企业邮箱附件大小有限制吗?
企业邮箱是公司初创时常用的办公方式,工作安排.工作汇报.合同.发票等都需要使用到邮件.其中企业邮箱附件功能是大家常用且尤为关注的,分超大附件及普通附件.针对大文件的上传方法,下面小编具体分享下~ 企业 ...
最新文章
- 什么是Low Code ? 居然能威胁到专业程序员?
- 【团队管理】改造团队成员?
- vue中style的scoped属性的设计方式
- MVP on Board 没用小技巧
- JavaSE03: Arrays工具类的使用及简单数组算法
- ​为什么你应该申请去小型的初创公司实习?
- c# 中实用包,实用dll。
- CMD窗口居中的方法(转)
- QGIS安装与使用教程
- HP服务器远程管理工具iLO详细介绍
- 计算机怎么快速匹配,四种方法教您如何在Excel中快速查找重复数据
- Dynamics CRM 365零基础入门学习(五)权限管理
- 单片机c语言计算器,基于STC89C52单片机的计算器的设计.doc
- mPass 微服务开发平台
- java抠图边框颜色处理_ps抠图边缘颜色怎么处理
- 2020年webpack面试题
- HTTP Cache(缓存)
- 量化对冲基金的国内发展史
- GolangBlog ModuleSeries - Part 2 | Migrating to Go Modules
- 数据转换软件_数据转换