Skip to content
Back to skills

Email Skill

ASecurity

邮件统一入口(纯路由层),自身不执行任何脚本与接口,识别用户意图后用 read 工具读取下游 skill 的 SKILL.md 路由到下游。【路由决策必读】两步决策:L0 用户是否显式指定邮箱通道?L1 若未指定,是发给自己/结果留存还是发给别人/完整收发?L0 显式:'Agent/AI 邮箱'→读取 agent-email/SKILL.md;'用我的 QQ/163/Gmail/Outlook'→读取 imap-smtp-email/SKILL.md;'发到我邮箱/推到我邮箱/保存到邮箱'→读取 public-skill/SKILL.md。L0 未指定 → L1:发给自己/结果留存→读取 public-skill/SKILL.md;发给别人/完整收发→读取 personal-mail-skill/SKILL.md。绝不在 read 工具读取 SKILL.md 之前向用户追问账号选择,由系统拦截层统一处理。

  • 417 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
tools

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add infometa/workbuddyskills --skill email-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Email Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Email Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-email-skill/badge)](https://www.skillsdirectory.com/skills/infometa-email-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: email-skill
description: "邮件统一入口(纯路由层),自身不执行任何脚本与接口,识别用户意图后用 read 工具读取下游 skill 的 SKILL.md 路由到下游。【路由决策必读】两步决策:L0 用户是否显式指定邮箱通道?L1 若未指定,是发给自己/结果留存还是发给别人/完整收发?L0 显式:'Agent/AI 邮箱'→读取 agent-email/SKILL.md;'用我的 QQ/163/Gmail/Outlook'→读取 imap-smtp-email/SKILL.md;'发到我邮箱/推到我邮箱/保存到邮箱'→读取 public-skill/SKILL.md。L0 未指定 → L1:发给自己/结果留存→读取 public-skill/SKILL.md;发给别人/完整收发→读取 personal-mail-skill/SKILL.md。绝不在 read 工具读取 SKILL.md 之前向用户追问账号选择,由系统拦截层统一处理。"
version: "5.1"
trigger_keywords:
  - 发邮件
  - 发送邮件
  - 写邮件
  - 邮箱
  - email
  - send email
  - 收邮件
  - 查邮件
  - 检查邮箱
  - 收件箱
  - inbox
  - 搜索邮件
  - 查找邮件
  - 下载附件
  - 邮件附件
  - 绑定邮箱
  - 邮箱绑定
  - 日报推送
  - 天气推送
  - 报告推送
  - 提醒推送
  - 邮件通知
  - 邮件推送
  - 推送到邮箱
  - 消息留存
  - Agent邮箱
  - AI邮箱
exclude_when:
  - 操作与邮件完全无关(如日历、文件管理、聊天)
  - 用户要求发送短信或站内信(非邮件渠道)
---

# Email Skill(统一邮件入口 / 纯路由层)

> **定位**:`email-skill` 是所有邮件需求的**唯一入口**。它**只做意图识别和路由分发**,不执行任何脚本,不调用任何接口。识别用户意图后,**直接用 `read` 工具读取下游 skill 的 `SKILL.md` 文件**,由系统拦截层统一处理授权与绑定。

## 0. 核心原则

1. **本 skill 不执行任何东西**,只做意图识别和路由分发。
2. **识别完意图后必须立即用 `read` 工具读取下游 skill 的 `SKILL.md` 文件**,禁止用对话替代调用。
3. **不要在用 `read` 工具读取 `SKILL.md` 之前向用户追问"用哪个邮箱""绑定了哪个邮箱"**——所有账号选择、绑定状态、卡片弹出都由系统拦截层统一处理(必要时会自动弹出绑定/选择卡片)。
4. **不要读默认邮箱、不要查 4230 接口、不要做账号探测**——这些是下游 skill(特别是 `personal-mail-skill`)的职责。

## 1. 路由决策(两步法)

```
用户邮件需求
       │
       ▼
   L0 显式指定邮箱通道?
   ├─ 是 → 按 L0 表查
   └─ 否 → L1 发给自己 or 发给别人?
              ├─ 自己 / 结果留存 → public-skill
              └─ 别人 / 完整收发 → personal-mail-skill
```

### 1.1 L0:用户是否**显式**指定了邮箱通道?

| 用户表达信号 | 路由目标 | 说明 |
|-------------|---------|------|
| 提到 **"Agent 邮箱""AI 邮箱""专属邮箱"**,或明确要求**"用 Agent 邮箱发/查"** | `agent-email` | QClaw 专属代收代发通道 |
| 提到 **"用我的 QQ / 163 / Gmail / Outlook / Foxmail / Yahoo / 网易邮箱 发"** | `imap-smtp-email` | 用户明确指定了自己的私邮通道 |
| 提到 **"发到我邮箱""推到我邮箱""保存到邮箱""推送到邮箱"** | `public-skill` | 平台公邮(零配置自留存通道) |

> **注意**:收件人地址包含 `@agent.qq.com`(如 `xxx@agent.qq.com`)**不构成 L0 命中条件**。收件人地址只是"发给谁",不等于用户指定了发送通道。此类场景应进入 L1 判断(发给别人 → `personal-mail-skill`),由二级路由根据用户绑定情况决定使用哪个通道发送。

> **关键**:L0 只匹配**显式表达**。用户没说邮箱归属时,进入 L1。

### 1.2 L1:用户没指定邮箱时,发给自己还是发给别人?

仅当 L0 未命中时进入 L1。

| 用户场景特征 | 路由目标 |
|-------------|---------|
| 收件人是用户**自己**(无第三方)+ 纯文本 + 不需要附件/抄送/HTML/收件箱搜索/下载附件 | `public-skill` |
| 典型语:**"把这个总结发到我邮箱""日报推到我邮箱""天气推到我邮箱""帮我留存"** | `public-skill` |
| 收件人是**第三方**(同事/客户/朋友/...) | `personal-mail-skill` |
| 需要**附件 / 抄送 cc / 密送 bcc / HTML 邮件** | `personal-mail-skill` |
| 需要**收件箱查询 / 搜索邮件 / 拉取详情 / 标记已读未读** | `personal-mail-skill` |
| 需要**下载附件** | `personal-mail-skill` |

> **personal-mail-skill 是什么?** 它是"完整收发型邮件"的二级路由层,里面会根据用户的默认邮箱偏好和实际绑定情况,再次路由到 `agent-email` 或 `imap-smtp-email`。**你不需要知道里面的细节**,直接用 `read` 工具读取 `personal-mail-skill/SKILL.md` 即可。

## 2. 下游 skill 职责一览

| 下游 skill | 角色 | 你不需要关心的细节 |
|------------|------|--------------------|
| `public-skill` | 平台公邮(零配置自留存) | 公邮绑定状态、配额 |
| `personal-mail-skill` | 完整收发的二级路由层 | 默认邮箱偏好、Agent vs 私邮选择、未绑定时的卡片 |
| `agent-email` | QClaw Agent 邮箱通道 | OAuth 授权状态 |
| `imap-smtp-email` | IMAP/SMTP 私邮通道 | 账号选择、凭证刷新 |

> 在本 skill 里你**只需要决定路由到 `public-skill` / `personal-mail-skill` / `agent-email` / `imap-smtp-email` 之一**,绝大多数 L1 场景应路由到 `public-skill` 或 `personal-mail-skill`。`agent-email` 和 `imap-smtp-email` 通常只在 L0 显式指定时使用。

## 3. 路由动作(执行规范)

确定路由目标后,**立即用 `read` 工具读取目标 skill 的 `SKILL.md` 文件**:

- L0 命中 Agent → 用 `read` 工具读取 `agent-email/SKILL.md`
- L0 命中具体私邮 → 用 `read` 工具读取 `imap-smtp-email/SKILL.md`
- L0 命中"发到我邮箱" → 用 `read` 工具读取 `public-skill/SKILL.md`
- L1 自己 / 结果留存 → 用 `read` 工具读取 `public-skill/SKILL.md`
- L1 别人 / 完整收发 → 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

### 读取后的继续执行规则

- **读取 `agent-email/SKILL.md`、`imap-smtp-email/SKILL.md` 或 `public-skill/SKILL.md` 后**:直接执行该文件中的指令,完成邮件发送/查询操作。
- **读取 `personal-mail-skill/SKILL.md` 后**:该文件是一个二级路由层,**你必须继续执行该文件中的路由动作**——它会告诉你下一步该读取 `agent-email/SKILL.md` 还是 `imap-smtp-email/SKILL.md`。**不要在此步骤回复用户或停止,必须继续 read 下一个 SKILL.md。**

**禁止行为**:
- ❌ 在用 `read` 工具读取 `SKILL.md` 之前向用户追问"你想用哪个邮箱"
- ❌ 在用 `read` 工具读取 `SKILL.md` 之前自己读取默认邮箱配置
- ❌ 在用 `read` 工具读取 `SKILL.md` 之前查询 4230 接口
- ❌ 在用 `read` 工具读取 `SKILL.md` 之前先执行任何 imap-smtp-email / agent-email 的内部脚本
- ❌ 用文字回复替代读取 `SKILL.md`
- ❌ 只"理解"路由逻辑但不实际读取 `SKILL.md`
- ❌ 读取 `personal-mail-skill/SKILL.md` 后就停止,不继续执行其中的路由动作

如果你**不确定路由到哪个**:
- 优先按 L1 给 `personal-mail-skill`(系统拦截层会处理后续)
- 仅在用户场景明显是"自留存"时才路由到 `public-skill`

## 4. 场景示例

### 示例 1:L0 命中 Agent 邮箱

> 用户:"帮我看下 Agent 邮箱有没有新邮件"

→ 用 `read` 工具读取 `agent-email/SKILL.md`

### 示例 2:L0 命中具体私邮

> 用户:"用我的 Gmail 给客户发一封报价"

→ 用 `read` 工具读取 `imap-smtp-email/SKILL.md`

### 示例 3:L0 命中自留存

> 用户:"把这段总结发到我邮箱"

→ 用 `read` 工具读取 `public-skill/SKILL.md`

### 示例 4:L1 发给自己(自留存场景)

> 用户:"查一下深圳明天天气,发到我邮箱"

→ 用 `read` 工具读取 `public-skill/SKILL.md`

> 用户:"每天下班把日报推到我邮箱"

→ 用 `read` 工具读取 `public-skill/SKILL.md`

### 示例 5:L1 发给别人(完整收发)

> 用户:"给客户 alice@example.com 发一封会议确认邮件"

→ 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

> 用户:"给团队发周报,抄送 PM,附上 Q3 报表"

→ 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

> 用户:"帮我发一封邮件给 haikuotiankong4877@agent.qq.com,标题测试"

→ 用 `read` 工具读取 `personal-mail-skill/SKILL.md`(收件人地址含 `@agent.qq.com` **不等于**用户指定了 Agent 邮箱通道,这里是发给第三方,走 L1)

### 示例 6:L1 收件箱操作(属于完整收发能力)

> 用户:"查一下最近两小时的发票邮件"

→ 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

> 用户:"下载那封邮件的附件"

→ 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

## 5. 一句话记忆

- **显式说"用 Agent / AI 邮箱"** → 用 `read` 工具读取 `agent-email/SKILL.md`
- **显式说"用我的 QQ / 163 / Gmail / Outlook"** → 用 `read` 工具读取 `imap-smtp-email/SKILL.md`
- **"发到我邮箱 / 推到我邮箱 / 保存到邮箱"** → 用 `read` 工具读取 `public-skill/SKILL.md`
- **未指定 + 发给自己 / 自留存** → 用 `read` 工具读取 `public-skill/SKILL.md`
- **未指定 + 发给别人 / 完整收发** → 用 `read` 工具读取 `personal-mail-skill/SKILL.md`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in tools →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.