用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Alexxiang2008/awesome-skills-map --skill email-triage命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | email-triage |
| description | 智能邮件分类与回复助手 - 收件箱零焦虑。邮件优先级分类(紧急/重要/可延后)、智能回复草稿生成、待办事项自动提取。支持 /email-triage 或 /邮件分类 或 /收件箱 命令启动。 |
| license | MIT |
收件箱零焦虑 - 邮件分类 + 智能回复 + 待办提取
/email-triage - 启动邮件分类助手/邮件分类 - 中文别名/收件箱 - 中文别名你是一个智能邮件分类与回复助手,帮助用户实现"收件箱零焦虑"。
首先检查 ~/.email-triage/config.json 是否存在:
cat ~/.email-triage/config.json 2>/dev/null || echo "CONFIG_NOT_FOUND"
如果配置文件不存在(返回 CONFIG_NOT_FOUND),执行首次配置引导流程(Step 1)。
如果配置文件存在,跳到 Step 2 继续执行。
👋 欢迎使用邮件分类助手!
这是你第一次使用,我来帮你完成简单的配置。
配置完成后,以后每次使用都会自动连接你的邮箱。
你也可以选择跳过配置,先用「粘贴邮件」的方式体验功能。
使用 AskUserQuestion 工具:
如果选择「暂不配置」: 跳转到 Step 3,使用粘贴方式。
使用 AskUserQuestion 工具:
根据用户选择的邮箱类型,显示对应教程:
QQ邮箱:
📝 QQ邮箱授权码获取步骤:
1. 电脑登录 mail.qq.com
2. 点击「设置」→「账户」
3. 找到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务」
4. 点击「开启」IMAP/SMTP服务
5. 按提示发送短信验证
6. 获取 16 位授权码(类似:abcdefghijklmnop)
⚠️ 注意:授权码不是 QQ 密码,是专门用于第三方客户端的密码
163/126邮箱:
📝 163/126邮箱授权码获取步骤:
1. 电脑登录 mail.163.com 或 mail.126.com
2. 点击「设置」→「POP3/SMTP/IMAP」
3. 开启「IMAP/SMTP服务」
4. 按提示设置「客户端授权密码」
5. 记录这个授权密码
⚠️ 注意:授权密码不是邮箱登录密码
Gmail:
📝 Gmail 应用专用密码获取步骤:
1. 访问 Google 账号设置: myaccount.google.com
2. 点击「安全性」→「两步验证」(需先开启)
3. 在两步验证页面底部找到「应用专用密码」
4. 选择应用类型「邮件」,设备选择「其他」
5. 点击「生成」,获取 16 位密码
⚠️ 注意:需要先开启两步验证才能生成应用专用密码
Outlook/Hotmail:
📝 Outlook 应用密码获取步骤:
1. 访问 Microsoft 账户: account.microsoft.com
2. 点击「安全」→「高级安全选项」
3. 开启「两步验证」
4. 在「应用密码」部分创建新密码
5. 记录生成的密码
⚠️ 注意:需要先开启两步验证
依次询问用户(使用普通对话方式):
切换到 Skill 所在目录,测试邮箱连接:
cd ~/.claude/skills/email-triage && python3 -c "
from lib.email_client import test_connection
result = test_connection('用户邮箱', '用户授权码')
print('SUCCESS' if result else 'FAILED')
"
如果连接成功:
✅ 邮箱连接成功!已成功连接到 user@qq.com
如果连接失败:
❌ 连接失败,请检查:
1. 邮箱地址是否正确
2. 授权码是否正确(不是登录密码)
3. 是否已开启 IMAP 服务
是否重新输入?
使用 AskUserQuestion 工具:
创建配置目录和文件:
mkdir -p ~/.email-triage
使用 Write 工具写入配置文件 ~/.email-triage/config.json:
{
"default_account": "user@qq.com",
"accounts": [
{
"email": "user@qq.com",
"provider": "qq",
"auth_code": "xxxxxxxx",
"added_at": "2026-02-01"
}
],
"preferences": {
"default_limit": 20,
"save_auth_code": true
}
}
注意:如果用户选择不保存授权码,则 auth_code 字段留空,save_auth_code 设为 false。
🎉 配置完成!
已保存邮箱: user@qq.com
授权码: 已保存 / 未保存
现在开始处理你的邮件吧!
读取配置文件,显示欢迎信息:
👋 欢迎回来!
已配置邮箱: user@qq.com
如果配置中 save_auth_code 为 false 或 auth_code 为空,需要询问用户输入授权码。
使用 AskUserQuestion 工具询问:
如果已配置邮箱:
如果未配置邮箱:
根据用户选择执行:
从邮箱获取:
cd ~/.claude/skills/email-triage && python3 -c "
from lib.email_client import EmailClient
import json
from datetime import datetime
with EmailClient('邮箱地址', '授权码') as client:
# fetch_emails 会自动搜索最近30天的邮件,按实际日期排序,返回最新的N封
emails = client.fetch_emails(limit=50)
# 保存到缓存文件
data = {
'fetched_at': datetime.now().isoformat(),
'account': '邮箱地址',
'total_count': len(emails),
'emails': [e.to_dict() for e in emails]
}
import os
os.makedirs('cache', exist_ok=True)
with open('cache/latest_emails.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# 输出摘要信息
print(f'获取到 {len(emails)} 封邮件')
if emails:
print(f'日期范围: {emails[-1].date_str[:25]} ~ {emails[0].date_str[:25]}')
# 输出邮件列表
for e in emails:
print(json.dumps(e.to_dict(), ensure_ascii=False, indent=2))
"
重要说明 - 邮件获取逻辑:
fetch_emails() 方法的工作原理:
SINCE 命令搜索最近 30 天的邮件(确保获取到足够的最新邮件)这样做的原因是:某些邮箱服务器(如 QQ 邮箱)的 IMAP 邮件 ID 顺序与邮件实际接收日期不一致, 直接按 ID 取最后 N 封可能会获取到旧邮件。通过 SINCE 搜索 + 日期排序可以确保获取到真正最新的邮件。
粘贴邮件内容: 提示用户粘贴邮件,格式如下:
发件人: xxx@example.com
主题: 关于项目进度
正文:
邮件正文内容...
导入邮件文件:
lib/email_parser.py 解析管理邮箱配置:
对每封邮件执行以下分析:
读取 ~/.claude/skills/email-triage/prompts/classify.md 中的 prompt 模板,对邮件进行分类。
输出:
读取 ~/.claude/skills/email-triage/prompts/extract_todos.md 中的 prompt 模板。
输出:
读取 ~/.claude/skills/email-triage/prompts/reply.md 中的 prompt 模板。
输出:2-3 个不同风格的回复草稿
## 📧 邮件分析
**主题:** {subject}
**发件人:** {sender}
**优先级:** 🔴 紧急 / 🟡 重要 / 🟢 可延后
### 摘要
{一句话摘要}
### 待办事项
- [ ] {task 1}
- [ ] {task 2}
### 建议回复
**版本 1 (正式):**
> 回复内容...
**版本 2 (简洁):**
> 回复内容...
# 📬 邮件分析报告
## 概览
- 总计: X 封
- 🔴 紧急: X 封
- 🟡 重要: X 封
- 🟢 可延后: X 封
## 🔴 紧急邮件
...
## 🟡 重要邮件
...
## 🟢 可延后邮件
...
## 📋 待办汇总
- [ ] ...
配置存储在 ~/.email-triage/config.json:
{
"default_account": "user@qq.com",
"accounts": [
{
"email": "user@qq.com",
"provider": "qq",
"auth_code": "xxxxxxxx",
"added_at": "2026-02-01"
}
],
"preferences": {
"default_limit": 20,
"save_auth_code": true
}
}
由于某些邮箱服务器(如 QQ 邮箱)的 IMAP 邮件 ID 顺序与邮件实际日期不一致,
fetch_emails() 方法采用以下策略确保获取到真正最新的邮件:
SINCE 命令搜索最近 30 天的邮件获取的邮件会自动保存到 ~/.claude/skills/email-triage/cache/latest_emails.json,
包含以下信息:
fetched_at: 获取时间account: 邮箱账号total_count: 邮件总数emails: 邮件详情列表| 服务商 | 域名 | IMAP 服务器 |
|---|---|---|
| QQ邮箱 | qq.com | imap.qq.com |
| 163邮箱 | 163.com | imap.163.com |
| 126邮箱 | 126.com | imap.126.com |
| Gmail | gmail.com | imap.gmail.com |
| Outlook | outlook.com | outlook.office365.com |
| Hotmail | hotmail.com | outlook.office365.com |
| Yahoo | yahoo.com | imap.mail.yahoo.com |
| iCloud | icloud.com | imap.mail.me.com |
| 阿里云邮箱 | aliyun.com | imap.aliyun.com |
| 新浪邮箱 | sina.com | imap.sina.com |