影刀RPA分享第106期|邮件图片提取不用愁!2 种方案任选:直接提 / 用 eml,新手也能 1 分钟上手
评论
收藏

影刀RPA分享第106期|邮件图片提取不用愁!2 种方案任选:直接提 / 用 eml,新手也能 1 分钟上手

经验分享
小可耐教你学影刀RPA【哔哩哔哩同名】
2025-09-28 09:26·浏览量:462
小可耐教你学影刀RPA【哔哩哔哩同名】
影刀高级开发者
发布于 2025-09-28 09:26462浏览


每天收到满是图片的邮件,想保存却只能右键“另存为”一张张点?其实不用这么麻烦!今天给大家整理了两种超实用的邮件图片提取方案:一种不用存eml文件,直接在邮箱里批量提;另一种用eml文件+Python脚本,适合大量邮件集中处理。不管你是用Outlook、网页邮箱还是手机,都能找到适合自己的方法~


方案一:不用eml!直接在邮箱里提取图片

适合场景:邮件数量少(10封以内)、常用固定邮箱工具(如Outlook客户端、QQ/网易网页版),不想折腾文件和脚本,追求“即开即提”。

下面分3种常用工具,讲具体操作步骤,全是傻瓜式操作,不用懂技术!


1. Outlook客户端(推荐!自带批量功能)

如果你用的是电脑端Outlook(比如公司办公常用的2019/365版本),直接用自带功能就能批量提图,不用装任何工具:

  1. 打开需要提图的邮件,点击顶部菜单栏「文件」→「另存为」;
  2. 在“保存类型”里选「网页(*.htm; *.html)」,选好保存路径(比如桌面),点击「保存」;
  3. 去保存路径里看,会多出两个东西:一个.html文件(打开就是邮件内容),还有一个「XXX_files」文件夹(XXX是你刚才改的文件名);
  4. 双击打开这个「XXX_files」文件夹,里面全是邮件里的图片!想怎么复制、整理都可以,甚至连邮件里的小图标都会一起提取出来。

👉 优点:不用装插件,微软自带功能,安全无广告;
👉 缺点:一次只能处理1封邮件,适合单封多图的场景。


2. QQ/网易网页版邮箱(用浏览器插件/开发者工具)

如果习惯用网页版邮箱(比如在家用QQ邮箱、网易邮箱),没有客户端的批量功能,可试试这两种方法:

方法A:用浏览器插件(新手首选)

找一个安全的“邮件图片提取”插件,比如Chrome/Edge浏览器的「Email Image Saver」:

  1. 打开浏览器(以Edge为例),点击右上角「扩展」→「管理扩展」→「获取Microsoft Edge扩展」;
  2. 在扩展商店搜索「Email Image Saver」,点击「获取」安装(Chrome同理,去Chrome网上应用店搜);
  3. 打开有图片的邮件页面,点击浏览器右上角的插件图标,插件会自动识别邮件里的所有图片;
  4. 点击插件里的「Download All Images」,会把所有图片打包成ZIP文件下载,解压后就是完整图片。

👉 注意:只从浏览器官方扩展商店下载插件,避免装到恶意软件;部分邮箱可能屏蔽插件,若无效换方法B。

方法B:浏览器开发者工具(无插件应急用)

如果不想装插件,用浏览器自带的“开发者工具”也能提图,步骤稍多但通用:

  1. 打开邮件页面,按键盘「F12」键(或右键页面空白处→「检查」),调出开发者工具;
  2. 在开发者工具顶部,找到「Sources」(Chrome)或「源」(Edge)选项卡,点击进入;
  3. 在左侧“文件列表”里找「Images」文件夹,展开后就能看到所有图片文件(文件名可能是乱码,但预览能看到内容);
  4. 右键单张图片→「Save image as」保存,或按「Ctrl+A」全选后复制到文件夹(部分浏览器支持批量拖放)。

👉 优点:不用装任何东西,所有浏览器都支持;
👉 缺点:一次只能提1封邮件,图片多的话要手动选,略费时间。


3. 手机端邮箱(微信/QQ邮箱APP)

如果邮件在手机上,想直接提取图片,两种简单方法:

  1. 单张保存:打开邮件,长按图片→选择「保存图片」,会自动存到手机相册(适合图片少的情况);
  2. 批量转发存图:如果图片多,长按邮件→选择「转发」,把邮件转发到自己的另一个邮箱,转发时会提示“是否包含图片”,选“是”;然后在电脑上打开转发后的邮件,用上面的“方案一”提取(手机端暂时没有批量存图的直接功能,用电脑辅助更高效)。


方案二:用eml文件+Python脚本!适合大量邮件集中处理

适合场景:邮件数量多(10封以上)、需要按邮件分类存图(比如每封邮件的图片单独放一个文件夹),想一次性搞定所有提取工作。

这种方法的核心是:先把所有邮件存成eml文件(所有邮箱都支持存),再用现成脚本批量提图,新手不用写代码,改个路径就行!


第一步:把邮件存成eml文件(30秒/封)

不管你用什么邮箱,存eml的方法都很统一,以常见工具为例:

邮箱工具存为eml步骤
Outlook客户端选中邮件→右键「另存为」→保存类型选「Outlook邮件格式(.eml)」→选保存路径
QQ/网易网页版打开邮件→右上角「更多」/「更多操作」→「导出邮件」→自动下载eml文件
手机邮箱APP长按邮件→「更多」→「导出邮件」→通过微信/QQ发送到电脑,保存为eml文件

把所有要提图的eml文件,放到同一个文件夹里(比如桌面“邮件提图”文件夹),方便后续处理。


第二步:用Python脚本批量提图(1分钟搞定)

我已经把代码写好了,新手不用懂编程,只需改1个参数、运行1行命令:

1. 准备Python环境(5分钟,终身可用)

如果没装Python,先装一下(后续处理其他文件也能用):

  • 打开Python官网(www.python.org/downloads),下载Python 3.8以上版本;
  • 安装时务必勾选“Add Python to PATH”(划重点!漏了会报错),然后点“Install Now”;
  • 装完后按「Win+R」输入“cmd”,敲回车打开命令提示符,输入“python --version”,显示“Python 3.xx.x”就说明装好了。


2. 复制脚本+改路径(关键一步)

把下面的代码复制下来,用记事本保存为「extract_email_images.py」文件,然后放到刚才存eml文件的文件夹里(比如桌面“邮件提图”文件夹,现在文件夹里有:脚本文件+所有eml文件):

import os
from email import policy
from email.parser import BytesParser

# !!!重点:修改成你的eml文件所在文件夹路径
eml_dir = r"C:\Users\你的用户名\Desktop\邮件提图"

def extract_images_from_eml(eml_path, output_dir):
    """从单个eml文件提取图片并保存"""
    try:
        # 解析eml文件
        with open(eml_path, 'rb') as f:
            msg = BytesParser(policy=policy.default).parse(f)
        
        count = 0
        # 遍历邮件内容,筛选图片
        for part in msg.walk():
            content_type = part.get_content_type()
            if content_type.startswith("image/"):
                # 统一图片格式(jpeg→jpg)
                ext = content_type.split("/")[-1]
                if ext == "jpeg":
                    ext = "jpg"
                
                # 处理图片文件名(避免特殊字符报错)
                filename = part.get_filename() or f"image_{count}.{ext}"
                filename = "".join([c for c in filename if c not in '/:*?"<>|'])
                filepath = os.path.join(output_dir, filename)
                
                # 保存图片
                payload = part.get_payload(decode=True)
                if payload:
                    with open(filepath, "wb") as img:
                        img.write(payload)
                    print(f"✅ 提取成功:{filepath}")
                    count += 1
        
        # 无图片时创建标记文件
        if count == 0:
            with open(os.path.join(output_dir, "无图片说明.txt"), "w", encoding="utf-8") as f:
                f.write("该邮件中未包含可提取的图片")
            print("❌ 该邮件无图片")
        
        return count
    
    except Exception as e:
        print(f"⚠️ 处理失败:{str(e)}")
        return 0

def main():
    """批量处理所有eml文件"""
    # 检查文件夹是否存在
    if not os.path.exists(eml_dir):
        print(f"❌ 错误:文件夹不存在 → {eml_dir}")
        return
    
    # 遍历所有eml文件
    for file in os.listdir(eml_dir):
        if file.lower().endswith(".eml"):
            eml_path = os.path.join(eml_dir, file)
            eml_name = os.path.splitext(file)[0]
            # 为每封邮件创建单独文件夹
            output_dir = os.path.join(eml_dir, eml_name)
            os.makedirs(output_dir, exist_ok=True)
            
            print(f"\n📧 正在处理:{file}")
            extract_images_from_eml(eml_path, output_dir)
            print(f"📦 处理完成,图片已保存到:{output_dir}")

if __name__ == "__main__":
    main()

然后用记事本打开这个脚本文件,找到「eml_dir = r"C:\Users\你的用户名\Desktop\邮件提图"」这行,把路径改成你自己的文件夹路径(比如你的eml文件在D盘“邮件图片”文件夹,就改成「eml_dir = r"D:\邮件图片"」)。

👉 怎么找路径?打开文件夹,点击顶部地址栏,地址会变成文本,直接复制粘贴进去即可,前面要加“r”哦!


3. 运行脚本,坐等提图

  1. 打开存“脚本+eml文件”的文件夹,按住「Shift键」,同时右键文件夹空白处,选择「在此处打开命令窗口」(或“在此处打开PowerShell窗口”);
  2. 在黑色窗口里输入「python extract_email_images.py」,敲回车;
  3. 接下来不用管!脚本会自动:
    • 识别所有eml文件;
    • 为每封邮件创建“同名文件夹”(比如“10月产品图.eml”对应“10月产品图”文件夹);
    • 把图片全部提取到对应文件夹,无图片的邮件会生成“无图片说明.txt”。

比如你有20封eml邮件,运行后会自动生成20个文件夹,每个文件夹里都是对应邮件的图片,不用手动分类,超省心!


两种方案对比:选哪个更合适?

很多人纠结“该用哪个方案”,直接看下面的对比表,按自己的需求选就行:

对比维度方案一:直接提取(无eml)方案二:eml+Python脚本
适合邮件数量少(1-10封)多(10封以上)
操作复杂度简单(点击/装插件),新手秒会略复杂(装Python+改路径),学会一次终身用
分类效果需手动分类图片(所有图混在一起)自动按邮件分文件夹,不用手动整理
支持邮箱工具限Outlook客户端、主流网页版所有邮箱(只要能存eml)
额外工具需求浏览器插件(可选)Python环境(一次性安装)

新手必看:避坑指南(90%的问题都在这)

  1. 方案一:网页版插件提不了图?
    → 原因:部分邮箱(如企业邮箱)屏蔽第三方插件;
    → 解决:换“开发者工具”方法,或把邮件转发到个人QQ邮箱,用QQ邮箱的“导出邮件”存成eml,再用方案二处理。
  2. 方案二:运行脚本报错“python不是内部命令”?
    → 原因:安装Python时没勾“Add Python to PATH”;
    → 解决:重新安装Python,务必勾选该选项,或百度“Python添加环境变量”(3分钟就能搞定)。
  3. 方案二:提示“文件夹不存在”?
    → 原因:脚本里的“eml_dir路径”写错了(比如多了空格、少了反斜杠);
    → 解决:重新复制文件夹地址,粘贴到脚本里,确保和实际路径完全一致。


总结:按场景选对方法,效率翻倍

  • 如果你只是偶尔提1-2封邮件的图,用方案一(Outlook另存为网页/浏览器插件),不用折腾文件;
  • 如果你是办公党,每天要处理10+封带图邮件,用方案二(eml+Python脚本),一次搞定所有提取和分类,再也不用手动点图。

试试这两种方法,你会发现:原来半小时的活,现在1分钟就能完成,省下的时间喝杯咖啡不香吗?

如果操作时遇到问题,评论区留言你的报错提示,我来帮你解决~
(需要方案二的完整脚本文件,后台回复「邮件提图脚本」直接获取,不用手动复制!)


收藏
全部评论1
最新
发布评论
评论