一个基于 Django 搭建的本地系统,用于查看、检索从 Mac 版 Microsoft Outlook 导出的 OLM 邮件存档文件。
- 动态检索 (Dynamic Loading): 针对超大 OLM 文件进行了深度优化。数据库中仅存储邮件元数据(主题、日期、发件人等),正文和附件仅在查看详情时从 OLM 压缩包中实时解析,极大节省了磁盘空间。
- 快速导入 (Fast Mode): 默认开启
fast_mode,显著降低了磁盘占用和初始解析时间,数百 GB 的 OLM 文件也能迅速索引完成。 - uv 环境管理: 使用最新的 Python 包管理工具
uv,提供极速的环境初始化、虚拟环境创建和依赖同步。 - 跨平台支持: 提供 Windows (PowerShell) 和 Unix/Linux/macOS (Bash) 两种环境的启动脚本。
项目推荐使用 uv 进行管理。
-
安装 uv:
- Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
-
同步环境与数据库初始化:
uv sync uv run manage.py migrate
项目依赖 Redis 作为 Celery 的消息队列(Message Broker),请确保 Redis 已在本地运行。
- 一键启动 (Web + Worker):
.\start_all.ps1 - 单独启动 Web:
.\start_web.ps1 - 单独启动 Worker:
.\start_worker.ps1
- 一键启动 (Web + Worker):
./start_all.sh - 单独启动 Web:
./start_web.sh - 单独启动 Worker:
./start_worker.sh
在 Django 管理后台 (http://127.0.0.1:8000/admin/) 或通过 uv run python 进入 shell 触发:
from outlook.tasks import parse_olm
# 开启 fast_mode (默认) 仅索引元数据,极大提升速度
parse_olm("D:/Path/To/Your/archive.olm", fast_mode=True)由于 Mac 版 Outlook 无法灵活指定存储位置,对于 128G SSD 的老款 Mac 极不友好。将邮件导出为 OLM 存储到外置硬盘是唯一的出路,但微软官方并未提供 OLM 浏览工具。本项目通过解析 OLM 内部的 XML Schema 实现了本地化的邮件归档浏览方案。
MIT