Skip to content

seagoat/kosmos

Repository files navigation

kosmos: 微软 Outlook OLM 邮件存档浏览器

一个基于 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 进行管理。

  1. 安装 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
  2. 同步环境与数据库初始化:

    uv sync
    uv run manage.py migrate

🚀 启动项目

项目依赖 Redis 作为 Celery 的消息队列(Message Broker),请确保 Redis 已在本地运行。

Windows (PowerShell)

  • 一键启动 (Web + Worker): .\start_all.ps1
  • 单独启动 Web: .\start_web.ps1
  • 单独启动 Worker: .\start_worker.ps1

macOS / Linux (Bash)

  • 一键启动 (Web + Worker): ./start_all.sh
  • 单独启动 Web: ./start_web.sh
  • 单独启动 Worker: ./start_worker.sh

📥 导入 OLM 文件

在 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

About

with a local Django site, can read all mails from Microsoft Outlook exported file (*.olm)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages