返回作品列表

网友作品 #000009 · 提交于 2026/08/04

Outlook 邮件筛选导出工具:邮件附件一键归档

★★★★★零基础python

作品作者

wugr73零基础
使用 Skill
python
提交你的作品

作品简介

OutlookMailExporter v1.0 是一个 Windows 桌面应用,通过 COM 接口连接本机桌面版 Outlook(Microsoft 365 / Office),按条件筛选收件箱邮件并导出为带附件的 Excel 表格。界面分筛选条件区、结果预览表、进度条与状态栏,提供今天/昨天/本周/本月快捷时间按钮;程序以 exe 形式分发,需完整解压后运行。

核心亮点

  • 四类筛选条件自由组合:关键字(逗号分隔多个词、匹配主题或正文、不分大小写)、发件人姓名或邮箱、邮箱账号、时间范围
  • 筛选结果预览:表格列出发件人、收件时间、主题,绿色行标记含附件邮件,分批处理(每批 50 封)带进度条
  • 带样式 Excel 导出:蓝色表头、微软雅黑、冻结首行、自动筛选;含正文摘要与附件数量,附件以 HYPERLINK 超链接嵌入,Excel 与 WPS 均兼容
  • 附件智能过滤:排除 URL 占位、跟踪像素、OLE 占位符及小于 1KB 的垃圾数据,保留真实文件与正常内嵌图片;同名附件自动追加 _1、_2 后缀防覆盖
  • 多账号支持:自动识别 Outlook 中所有邮箱账号,可下拉切换,兼容中英文收件箱文件夹名
  • 日志排障:每次运行自动在 logs/ 保存完整日志,问题可追溯

技术与工具

  • 技术栈:Python 3.12,PyInstaller 打包为 exe
  • 界面:tkinter / ttk
  • Outlook 交互:win32com(COM / MAPI)
  • Excel 导出:openpyxl

开发过程

作者是零基础小白,在 AI 编码 Skill 引导下半天完成开发;作品附带从解压启动、筛选条件填写、导出步骤到常见问题排查的完整使用说明。

适用场景

  • 行政、财务人员:批量导出归档发票、合同类邮件及附件,替代逐封另存
  • 法务、合规人员:定向筛选特定时间段、特定发件人的往来邮件,用于留存与审计
原始提交内容(点开查看,可复制全文去问 AI)

OutlookMailExporter 使用说明

Outlook 邮件筛选导出工具 v1.0 一个 Windows 桌面应用,用于从 Outlook 桌面客户端按条件筛选邮件,并导出为带附件的 Excel 表格。


一、功能简介

本工具通过 COM 接口连接本机桌面版 Outlook,支持按 关键字 / 发件人 / 时间范围 / 邮箱账号 四种条件组合筛选收件箱邮件,并将结果导出为格式化的 Excel 文件,同时自动下载并整理邮件附件。

核心能力一览:

功能 说明
邮件筛选 关键字、发件人、时间、账号四种条件自由组合
结果预览 筛选前在界面表格中预览(含附件标记)
Excel 导出 生成带样式的 Excel,附件以超链接形式嵌入
附件下载 自动下载真实附件,智能过滤垃圾/链接附件
多账号支持 自动识别 Outlook 中所有邮箱账号
日志记录 每次运行自动保存详细日志,便于排查问题

二、系统要求

  • 操作系统:Windows(本工具在 Windows 环境分发)
  • Outlook:已安装并登录的 桌面版 Outlook(Microsoft 365 / Office)
  • 运行方式:需完整解压后运行 .exe,不能直接从压缩包内运行

三、安装与启动

1. 解压

  1. 将 OutlookMailExporter-3.12 文件夹完整解压到本地磁盘(如 D:\ 或 C:\)。
  2. ️ 必须完整解压 —— 不要尝试从压缩包内直接运行 EXE。

2. 启动

  1. 进入解压后的 OutlookMailExporter 文件夹。
  2. 双击 OutlookMailExporter.exe。
  3. 确保 Outlook 桌面客户端已登录并运行,程序会自动连接。

四、界面说明

程序启动后界面分为以下几块:


  筛选条件区                                              
    [关键字]  [发件人]  [邮箱账号]                         
    [开始时间] [结束时间]  [今天][昨天][本周][本月]         

  [ 开始筛选] [ 导出 Excel] [取消]                    
  [=========== 进度条 ===========]                        

  筛选结果(表格预览)                                    
   发件人 | 收件时间 | 主题                                

  状态栏                                                  

五、操作步骤

第 1 步:设置筛选条件

在“筛选条件”区域填写(均可选,可组合使用):

条件 填写方式
关键字 输入关键词,多个用逗号分隔(如 发票,合同),匹配主题或正文,不区分大小写
发件人 输入发件人的姓名或邮箱地址
邮箱账号 下拉选择要搜索的账号(默认第一个账号)
开始时间 点击 弹出日历选择,或直接输入 YYYY-MM-DD
结束时间 同上

快捷按钮:点击 今天 / 昨天 / 本周 / 本月 可快速填入时间范围。

️ 注意:如果不设置任何条件直接搜索,会导出收件箱全部邮件,邮件量大时可能很慢(会有二次确认提示)。

第 2 步:点击「开始筛选」

  • 点击 ** 开始筛选**。
  • 程序会分批处理邮件(每批 50 封),期间进度条转动、状态栏显示进度。
  • 筛选完成后,结果会显示在下方表格中:
    • 绿色背景行 = 该邮件含有附件
    • 白色背景行 = 无附件

第 3 步:导出 Excel

  1. 点击 ** 导出 Excel**(筛选到邮件后此按钮才可用)。
  2. 在弹出窗口中选择保存文件夹。
  3. 程序会自动:
    • 下载所有真实附件到 附件/ 子文件夹
    • 生成 Excel 文件 邮件导出_时间戳.xlsx
  4. 完成后会自动打开保存文件夹,并弹出完成提示。

六、导出文件说明

导出后,在目标文件夹内会生成两类文件:

目标文件夹/
 邮件导出_20260804_104652.xlsx    邮件数据表格
 附件/                            下载的附件文件夹

Excel 表格结构

列 说明
序号 邮件编号
发件人 发件人姓名/邮箱
收件时间 收件日期时间
主题 邮件主题
正文摘要 去除 URL 链接后的正文前 200 字
附件数量 该邮件包含的附件个数
附件1~N 每个附件一列,含超链接,点击可打开本地附件

表格特性:

  • 蓝色表头 + 微软雅黑字体
  • 冻结首行
  • 自动筛选功能
  • 附件为 HYPERLINK 公式,Excel 与 WPS 均兼容,点击即可打开对应附件文件

七、附件智能过滤规则

程序会自动过滤垃圾/无意义的附件,只保留真实文件:

处理方式 类型
排除 URL 链接引用(如 <https://...> 占位)
排除 跟踪像素(<500 字节的小图片)
排除 无实体的 OLE 占位符
排除 无常见扩展名且 <1KB 的垃圾数据
保留 真实文件(PDF/Word/Excel/压缩包/媒体等)
保留 内嵌粘贴图片(>1KB 的正常尺寸图片)

同一邮件若有同名附件,会自动追加 _1、_2 等后缀避免覆盖。


八、多账号使用

  • 程序启动时会自动读取 Outlook 中所有邮箱账号(根文件夹名)。
  • 在“邮箱账号”下拉框中选择目标账号即可只搜索该账号的收件箱。
  • 不选择则默认使用第一个账号。
  • 兼容中文「收件箱」和英文「Inbox」文件夹名。

九、日志与排障

日志位置

每次运行都会在 logs/ 文件夹生成一个日志文件:

logs/export_20260804_104652.log

文件名格式为 export_日期_时间.log,记录了完整运行过程(连接、筛选条件、找到的邮件数、附件保存情况、错误信息等)。

常见问题

问题 排查方法
提示“无法连接到 Outlook” 确认 Outlook 桌面客户端已启动且已登录;确认当前 Windows 用户有权限访问 Outlook
提示“未连接” 等待程序初始化完成(启动后自动连接,约 1~2 秒)
筛选结果为 0 检查时间范围/关键字/发件人是否正确;可先用“今天”测试
从压缩包直接运行报错 必须先完整解压再运行 EXE
导出失败 查看 logs/ 下最新日志,将报错信息截图反馈

十、版本信息

  • 程序版本:v1.0
  • 技术栈:Python 3.12(PyInstaller 打包)
    • 界面:tkinter / ttk
    • Outlook 交互:win32com(COM / MAPI)
    • Excel 导出:openpyxl
  • 日志来源目录:logs/

如有任何问题,请将 logs/ 目录下最新的 .log 文件内容提供给维护人员。