重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
npx skills add https://github.com/dandcg/claude-skills --skill pst-to-markdown从 Outlook PST 文件中提取邮件,整理成结构化的、完整性已验证的 Markdown 文件、原始邮件备份和附件存档。支持完全提取和增量追加模式。
libratom(Python)或 readpst(来自 pst-utils 的系统工具)# 设置 Python 环境(一次性操作)
~/.claude/skills/pst-to-markdown/setup.sh
如果 libratom 安装失败,请安装 readpst 作为备用方案:
# Ubuntu/Debian
sudo apt install pst-utils
# macOS
brew install libpst
从 PST 文件中提取所有邮件到 Markdown 格式:
# 基本提取
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/
# 详细输出,显示进度
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --verbose
# 包含已删除项目
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --include-deleted --verbose
# 设置日期显示的时区
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --timezone "Europe/London"
# 修复 MAILER-DAEMON 已发送项目(提供 PST 所有者的邮箱)
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --owner-email "user@example.com"
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
仅添加新邮件(通过 Message-ID 跳过已提取的消息):
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --append --verbose
如果邮件已在其他地方使用 readpst 提取,请指向该目录:
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/eml-directory/ /path/to/output/
output/
├── emails/
│ ├── FolderName/
│ │ ├── 2023-01-15_093042_from-john.smith_to-jane.doe_RE-Subject/
│ │ │ ├── email.md # 带 YAML 前页的格式化 Markdown
│ │ │ ├── email.eml # 原始邮件(RFC 822)
│ │ │ ├── attachment_001_doc.pdf # 提取的附件
│ │ │ └── checksums.sha256 # 每封邮件的完整性哈希
│ │ └── .../
│ └── .../
├── index.csv # 机器可读的主索引
├── index.md # 带时间线的人类可读索引
├── extraction_log.txt # 包含统计信息的处理日志
└── manifest.sha256 # 主完整性清单
每个 email.md 包含:
extract_pst.py [-h] [--include-deleted] [--timezone TZ] [--verbose] [--append] [--owner-email EMAIL] pst_file output_dir
| 参数 | 描述 |
|---|---|
pst_file | PST 文件路径,或预提取的 .eml 文件目录 |
output_dir | 输出目录(如不存在则创建) |
--include-deleted | 包含 PST 中的已删除项目 |
--timezone TZ | 日期的目标时区(默认:UTC) |
--verbose, -v | 详细输出,包含每封邮件的日志记录 |
--append | 跳过存档中已有的邮件(通过 Message-ID) |
--owner-email EMAIL | PST 所有者的邮箱(修复已发送项目中的 MAILER-DAEMON) |
工具按优先级顺序尝试后端:
每次提取都会产生可验证的监管链:
checksums.sha256(所有文件的 SHA256)manifest.sha256 哈希所有校验和文件及索引验证方法:sha256sum -c manifest.sha256
对于大型存档,可与 repo-search 技能结合使用:
# 步骤 1:提取
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py archive.pst ./email-output/ --verbose
# 步骤 2:为搜索建立索引(使用 repo-search 技能)
~/.claude/skills/repo-search/.venv/bin/python ~/.claude/skills/repo-search/ingest.py ./email-output/ --verbose
# 步骤 3:搜索
~/.claude/skills/repo-search/.venv/bin/python ~/.claude/skills/repo-search/query.py --db-path ./email-output/.vectordb search "settlement agreement"
| 场景 | 大致速度 |
|---|---|
| 无附件的邮件 | ~5,000/小时 |
| 带附件的邮件 | ~2,000/小时 |
典型的 300MB PST 文件(约 1,000-3,000 封邮件)处理时间为 5-15 分钟。
每周安装次数
1
仓库
首次出现
1 天前
安全审计
安装于
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1
Extract emails from Outlook PST files into an organised, integrity-verified archive of markdown files, raw email backups, and attachments. Supports full extraction and incremental append mode.
libratom (Python) or readpst (system tool from pst-utils)# Set up Python environment (one-time)
~/.claude/skills/pst-to-markdown/setup.sh
If libratom installation fails, install readpst as a fallback:
# Ubuntu/Debian
sudo apt install pst-utils
# macOS
brew install libpst
Extract all emails from a PST file into markdown:
# Basic extraction
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/
# Verbose output with progress
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --verbose
# Include deleted items
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --include-deleted --verbose
# Set timezone for date display
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --timezone "Europe/London"
# Fix MAILER-DAEMON sent items (provide the PST owner's email)
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --owner-email "user@example.com"
Add only new emails (skips already-extracted messages by Message-ID):
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/file.pst /path/to/output/ --append --verbose
If emails were already extracted with readpst elsewhere, point at the directory:
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py /path/to/eml-directory/ /path/to/output/
output/
├── emails/
│ ├── FolderName/
│ │ ├── 2023-01-15_093042_from-john.smith_to-jane.doe_RE-Subject/
│ │ │ ├── email.md # Formatted markdown with YAML frontmatter
│ │ │ ├── email.eml # Raw original email (RFC 822)
│ │ │ ├── attachment_001_doc.pdf # Extracted attachments
│ │ │ └── checksums.sha256 # Per-email integrity hashes
│ │ └── .../
│ └── .../
├── index.csv # Machine-readable master index
├── index.md # Human-readable index with timeline
├── extraction_log.txt # Processing log with statistics
└── manifest.sha256 # Master integrity manifest
Each email.md contains:
extract_pst.py [-h] [--include-deleted] [--timezone TZ] [--verbose] [--append] [--owner-email EMAIL] pst_file output_dir
| Argument | Description |
|---|---|
pst_file | Path to PST file, or directory of pre-extracted .eml files |
output_dir | Output directory (created if needed) |
--include-deleted | Include deleted items from PST |
--timezone TZ | Target timezone for dates (default: UTC) |
--verbose, -v | Verbose output with per-email logging |
The tool tries backends in priority order:
Every extraction produces a verifiable chain of custody:
checksums.sha256 (SHA256 of all its files)manifest.sha256 hashes all checksum files plus the indexTo verify: sha256sum -c manifest.sha256
For large archives, combine with the repo-search skill:
# Step 1: Extract
~/.claude/skills/pst-to-markdown/.venv/bin/python ~/.claude/skills/pst-to-markdown/scripts/extract_pst.py archive.pst ./email-output/ --verbose
# Step 2: Index for search (uses repo-search skill)
~/.claude/skills/repo-search/.venv/bin/python ~/.claude/skills/repo-search/ingest.py ./email-output/ --verbose
# Step 3: Search
~/.claude/skills/repo-search/.venv/bin/python ~/.claude/skills/repo-search/query.py --db-path ./email-output/.vectordb search "settlement agreement"
| Scenario | Approximate Speed |
|---|---|
| Emails without attachments | ~5,000/hour |
| Emails with attachments | ~2,000/hour |
A typical 300MB PST (~1,000-3,000 emails) processes in 5-15 minutes.
Weekly Installs
1
Repository
First Seen
1 day ago
Security Audits
Gen Agent Trust HubPassSnykPass
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
48,700 周安装
--append| Skip emails already in archive (by Message-ID) |
--owner-email EMAIL | PST owner's email (fixes MAILER-DAEMON in sent items) |