首页 > 其他分享 >如何批量下载BOSS直聘候选人发往邮箱的简历附件

如何批量下载BOSS直聘候选人发往邮箱的简历附件

时间:2023-09-18 15:13:39浏览次数:40  
标签:简历 payload 直聘 filename email file 附件 BOSS imap

虽然是用在接收BOSS直聘邮件的,但也可以改为其他邮箱,不过解析需要自己修改

import imaplib
import email
import os
import base64
from email.header import decode_header
import re
# 邮箱信息
email_user = ''
email_pass = ''

# 连接到IMAP服务器
imap_server = 'imap.xxx'  # 请替换成你的邮箱提供商的IMAP服务器地址
imap = imaplib.IMAP4_SSL(imap_server)

# 登录到邮箱
imap.login(email_user, email_pass)

# 选择邮箱文件夹(如收件箱)
folder = 'INBOX'  # 可以根据需要更改为其他文件夹
imap.select(folder)

# 设置搜索条件(日期和发件人)
search_criteria = '(FROM "[email protected]" SINCE "14-SEP-2023")'

# 搜索匹配的邮件
status, email_ids = imap.search(None, search_criteria)

# 遍历匹配的邮件
for email_id in email_ids[0].split():
    # 获取邮件
    status, email_data = imap.fetch(email_id, '(RFC822)')
    raw_email = email_data[0][1]

    # 解析邮件
    msg = email.message_from_bytes(raw_email)
    
    # 遍历附件
    for part in msg.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue

        # 获取附件名称并解码
        filename = part.get_filename()
        if filename:
            filename, encoding = decode_header(filename)[0]
            if isinstance(filename, bytes):
                filename = filename.decode(encoding or 'utf-8')

            # 处理Base64编码的附件内容
            file_data = part.get_payload(decode=True)
            file_data_decoded = base64.b64decode(file_data)
            filename = filename[1:]           # 保存附件
            filename = "".join(x for x in filename if x.isalnum() or x in ["-", "_", "."])
            # 解码 Base64 编码的附件内容
              # 解码 Base64 编码的附件内容
            payload = part.get_payload(decode=True)
            try:
                payload_decoded = payload.decode('utf-8')
            except UnicodeDecodeError:
                payload_decoded = payload

            # 保存附件到 D 盘的 A 文件夹下
            file_path = os.path.join('D:\\A\\', filename)  # 替换为你想保存附件的文件夹路径
            with open(file_path, 'wb') as file:
                file.write(payload_decoded)

# 关闭连接
imap.logout()

标签:简历,payload,直聘,filename,email,file,附件,BOSS,imap
From: https://www.cnblogs.com/zhao-jie-li/p/17711873.html

相关文章

  • 简历制作小Tips
    简历制作小Tips写在前面简历基本框架个人基本信息教育背景实习经历项目经历个人技能荣誉奖励自我评价模板样式其他问题个人基础信息......
  • 想跳出Android内卷困境,简历匹配上大厂你需要做到那些
    内卷化是一个近年来在中文网络上经常出现的词汇,通常用来描述某个领域中过度的竞争和内部消耗。这个概念直观地说就是“向内演化”,更广泛地说,所有没有实质意义的消耗都可以称为内卷。在生活中,许多看似精益求精的重复工作,实际上是在内部范围内施展,而不是向外扩张,这也可以被视为内卷的......
  • 嵌入式面经_20届师兄谈笔试_八股文_简历_项目经验分享
    嵌入式面经_20届师兄谈笔试_八股文_简历_项目经验分享111道嵌入式面试题答案汇总专栏链接-->《嵌入式/C++面试题解析大全》1、个人经历本人2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业嵌入式/安卓开发经验,谈谈一些感想。2023都说前端后台卷死,相较2......
  • 【题解】CF1830B The BOSS Can Count Pairs
    你考虑,我们观察数据范围,发现可以是\(O(n\sqrtn)/O(n\logn)\)的,我们又看到乘法,便有几个大概的想法:数论分块\(O(\sqrtn)\)枚举其中一个乘数还有什么……(笔者学识浅陋,读者可以帮忙补充)我们可以找到两种\(O(n^2)\)做法:\(O(n^2)\)枚举数对\((i,j)\)然后进行判断。......
  • 作为Android程序员,为什么我的简历能让HR一眼就约面谈?
    前言我看过很多的简历,很多程序员其实是很懒的,尤其是工作了三、四年的程序员,很多人的简历才只有一页,只是把自已工作过的公司以及做的项目简单罗列一下,这是不对的,这是自已的不负责任。因为这样的简历很有可能让HR直接筛掉,因为HR每天面对几百上千份简历,一般都是通过关键词搜索来做初筛......
  • 【Android 开发】金九银十斩获offer秘籍:简历优化+Android大厂面试真题
    前言面试是一场没有硝烟的战争,这句话看有点危言耸听,但是在面试中考验的确无处不在。金九银十已经开始一个星期了,在面试或准备面试的小伙伴如果你在面试中对面试官所问的问题感到有困难时,那说明是我们的基础功没打好,或者是对面试题了解的还不够多。如果是连面试邀约都没有的小伙伴,咱......
  • Jboss安装成windows服务及其卸载
    作者fbysss一、将JBOSS安装为windowsservice:   1.到http://www.opencrx.org/downloads/JavaService-bin-1.2.0.zip下载JavaService,解压。   2.拷贝JavaService.exe为%JBOSS_HOME%/bin/JBossService.exe.(首先确定已经有JBOSS_HOME环境变量。)   3.进入%JBOSS_HOME%/,建......
  • 写简历 fiddler工具
         ......
  • 瑞吉外卖简历也许可以这样写
    项目描述:瑞吉外卖是一款专门为餐饮企业(餐厅、饭店)定制的软件产品,包括系统管理后台和移动端应用两部分。系统管理后台主要提供给餐饮企业内部员工使用,用于对餐厅的分类、菜品、套餐、订单、员工等进行管理维护。移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单......
  • 如何写出一份百发百中的简历
    马上就到一年一度的校招季了,近几年程序员行业的招聘可谓是越来越内卷,作为面试的敲门砖,简历的重要性不言而喻,今天就仔细谈谈简历的方方面面,希望对大家写简历有所帮助,愿每个人都能顺利拿到满意的Offer。简历包含哪些内容?一份好的简历总体可以分为以下几个板块,基本信息教育背......