网友作品 #000009 · 提交于 2026/08/04
Outlook 邮件筛选导出工具:邮件附件一键归档



1 / 3
作品简介
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. 解压
- 将
OutlookMailExporter-3.12文件夹完整解压到本地磁盘(如D:\或C:\)。 - ️ 必须完整解压 —— 不要尝试从压缩包内直接运行 EXE。
2. 启动
- 进入解压后的
OutlookMailExporter文件夹。 - 双击
OutlookMailExporter.exe。 - 确保 Outlook 桌面客户端已登录并运行,程序会自动连接。
四、界面说明
程序启动后界面分为以下几块:
筛选条件区
[关键字] [发件人] [邮箱账号]
[开始时间] [结束时间] [今天][昨天][本周][本月]
[ 开始筛选] [ 导出 Excel] [取消]
[=========== 进度条 ===========]
筛选结果(表格预览)
发件人 | 收件时间 | 主题
状态栏
五、操作步骤
第 1 步:设置筛选条件
在“筛选条件”区域填写(均可选,可组合使用):
| 条件 | 填写方式 |
|---|---|
| 关键字 | 输入关键词,多个用逗号分隔(如 发票,合同),匹配主题或正文,不区分大小写 |
| 发件人 | 输入发件人的姓名或邮箱地址 |
| 邮箱账号 | 下拉选择要搜索的账号(默认第一个账号) |
| 开始时间 | 点击 弹出日历选择,或直接输入 YYYY-MM-DD |
| 结束时间 | 同上 |
快捷按钮:点击
今天/昨天/本周/本月可快速填入时间范围。️ 注意:如果不设置任何条件直接搜索,会导出收件箱全部邮件,邮件量大时可能很慢(会有二次确认提示)。
第 2 步:点击「开始筛选」
- 点击 ** 开始筛选**。
- 程序会分批处理邮件(每批 50 封),期间进度条转动、状态栏显示进度。
- 筛选完成后,结果会显示在下方表格中:
- 绿色背景行 = 该邮件含有附件
- 白色背景行 = 无附件
第 3 步:导出 Excel
- 点击 ** 导出 Excel**(筛选到邮件后此按钮才可用)。
- 在弹出窗口中选择保存文件夹。
- 程序会自动:
- 下载所有真实附件到
附件/子文件夹 - 生成 Excel 文件
邮件导出_时间戳.xlsx
- 下载所有真实附件到
- 完成后会自动打开保存文件夹,并弹出完成提示。
六、导出文件说明
导出后,在目标文件夹内会生成两类文件:
目标文件夹/
邮件导出_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文件内容提供给维护人员。