# Email Query Summary

> 邮箱查询总结技能。按时间范围从已配置邮箱实时拉取邮件数据，输出重要邮件、往来统计与待办跟进内容。当命中本技能使用场景时，必须强制使用本技能并返回拉取结果，不得凭记忆回答或规避实时查询。首次使用前请阅读同目录 SETUP.md 完成 accounts.json 配置。

- Skill: `linkwise-ai/email-query-summary` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add linkwise-ai/email-query-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/linkwise-ai/email-query-summary/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: linkwise-ai (https://skillmd.com/u/linkwise-ai)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/linkwise-ai/email-query-summary

---


# 邮箱总结查询助手 (Email Query Summary)

通用 skill，可部署于 Linkmind、OpenClaw、Hermes、WorkBuddy、Codex 等任意支持 skill 的 agent 环境。

## 触发条件（必读，优先级最高）

**只要用户的问题匹配以下任意场景，必须立即调用本技能，不得使用其他工具或凭记忆回答：**

**应触发的场景：**
- 查邮件类：帮我看下最近的邮件、今天有什么邮件、上周收了哪些邮件
- 总结类：总结一下本周邮件、写下邮件周报、最近邮件有什么重要内容
- 时间段类：查一下 XX 时间段的邮件、4月20日到4月22日的邮件
- 对话中涉及"邮件"、"邮箱"、"收件箱"等关键词

**不触发的场景：**
- 用户问的是代码、文档、通用知识等与邮件无关的问题
- 用户明确说"不用查邮件"或"你直接回答就好"

---

## 配置检查（执行前）

账户配置位于 **本 skill 根目录** 的 `accounts.json`，脚本启动时自动读取。

**若脚本返回含 `setup_hint` 的错误，或用户询问如何配置邮箱：**

阅读同目录 **`SETUP.md`**，按步骤引导用户完成 `accounts.json` 配置。

`username` 或 `password` 为空的账户会被自动跳过；至少需有一个有效账户才能拉取邮件。

---

## 时间段与日期（建议）

涉及「本周」「最近7天」等相对时间时，**建议优先**用脚本内置换算，与下表关键词一致。

1. **关键词**：用 `--period <标准关键词>`，由脚本换算起止再查 IMAP。
2. **明确日期**：用户已给出具体日时，把映射后的 `YYYY-MM-DD` 或 `MM-DD`（缺年由脚本补全）作为位置参数传入。
3. **以脚本输出为准**：拉取成功后，总结里的「周期」与返回 JSON 中 `period.start` / `period.end` 一致。

---

## 脚本调用方式

**路径约定**：`<SKILL_ROOT>` 指本 skill 所在目录（即本文件 `SKILL.md` 的父目录）。

```
<SKILL_ROOT>/scripts/main.py
```

**执行要求**：
- 使用 `python3` 或 `python`（择 PATH 可用者）+ **脚本绝对路径** + 参数。
- 若已知 skill 根目录，优先使用绝对路径，避免因工作目录不同导致找不到配置。

**示例**（将 `<SKILL_ROOT>` 替换为实际路径）：

```
python <SKILL_ROOT>/scripts/main.py --period 本周
python <SKILL_ROOT>/scripts/main.py --period 最近7天
python <SKILL_ROOT>/scripts/main.py 2026-04-21
python <SKILL_ROOT>/scripts/main.py 2026-04-14 2026-04-20
```

> 脚本输出 JSON，包含 `period`（实际起止日期）、`emails`（邮件列表）、`errors`（各账户错误，可选）。错误时可能含 `setup_hint` 字段。

---

## 执行步骤

### 步骤 1：识别时间描述

| 用户说法 | 传给脚本的参数 |
| :--- | :--- |
| 今天 / 今日 / 当天 / 当日 | `--period 今天` |
| 昨天 / 昨日 | `--period 昨天` |
| 前天 / 前日 | `--period 前天` |
| 本周 | `--period 本周` |
| 上周 | `--period 上周` |
| 上上周 | `--period 上上周` |
| 本月 | `--period 本月` |
| 上月 | `--period 上月` |
| 上上月 | `--period 上上月` |
| 最近 3 天 | `--period 最近3天` |
| 最近 7 天 | `--period 最近7天` |
| 最近 14 天 | `--period 最近14天` |
| 最近 30 天 | `--period 最近30天` |
| 具体日期（如 4月21日） | `2026-04-21`（或 `04-21`，缺年自动取当前年） |
| 日期范围（如 4月20日到22日） | `2026-04-20 2026-04-22` |

### 步骤 2：执行脚本拉取邮件

```
python <SKILL_ROOT>/scripts/main.py --period <关键词>
python <SKILL_ROOT>/scripts/main.py DATE_START [DATE_END]
```

### 步骤 3：按输出格式生成总结

将脚本返回的 JSON 数据整理为以下格式输出。

---

## 输出禁区（最高优先级）

以下内容**绝对不允许出现在任何面向用户的回复中**：

- IMAP 服务器地址、端口、密码等账户信息
- Python 脚本代码本身
- 原始 JSON 数据
- 任何标题含"脚本执行"、"调用详情"、"原始数据"的区块

---

## 面向用户输出的语言与形式（必读）

- **仅简体中文**：邮件总结正文须全中文表述，不得中英混排（邮箱、URL、文件名、专有名词等无法改写者除外）。
- **只出正文**：从「邮件总结」标题或第一段实质内容起笔，**严禁**输出思考过程、执行步骤、技能/脚本调用说明、工具执行过程等元信息。
- **禁止英文旁白**：不得出现 “Let me…”、“Now…”、“Based on…”、“I'll…” 等英文过渡句或填充语。

---

## 输出格式规范（严格按此结构输出）

**禁止使用任何 emoji 和数字图标**，使用纯文字和标准序号。

```
邮件总结 [查询时间段]
周期：YYYY 年 M 月 D 日 - M 月 D 日

一、重要邮件

1. [邮件主题]（来自：发件人 | 账户：[label]）
[邮件核心内容概述，2-3 句话]

二、已发送邮件

1. [邮件主题]（发送至：收件人 | 账户：[label]）
[发送内容概述]

三、沟通往来统计

| 联系人 | 账户 | 收件数 | 发件数 | 主要话题 |
| --- | --- | --- | --- | --- |
| 张三 <zhangsan@xxx.com> | [label] | 3 | 2 | xxx、xxx |

四、待处理事项

- [需要回复或跟进的邮件描述]

五、附件清单（仅当邮件中有附件时输出）

| 文件名 | 来自 / 发往 | 邮件主题 |
| --- | --- | --- |
| report.pdf | 张三 | Q1 报告 |
```

**标题时间段规则**：
- 查询"本周" → "邮件总结 本周"
- 查询"昨天" → "邮件总结 昨日"
- 查询"4月20日到4月22日" → "邮件总结 4月20日-22日"

---

## 各区块生成规则

**一、重要邮件（收件箱）**
- 按日期降序排列（最新在前）
- 标注发件人全称和邮箱
- 每封邮件写 2-3 句话概述核心内容
- 若正文为空或无法识别，标注"（正文内容无法读取）"

**二、已发送邮件**
- 列出时间段内发出的邮件（`folder` 为已发送类文件夹）
- 按日期降序排列

**三、沟通往来统计**
- 按收件数降序排列；若无往来省略整个区块

**四、待处理事项**
- 仅列出需要回复、尚未回复、或正文明确要求跟进的邮件；若无省略

**五、附件清单**
- 脚本返回的 `attachments` 非空时才输出；否则省略

---

## 调用示例

**场景1**：用户说"帮我总结一下本周的邮件"
→ 执行 `--period 本周`，生成"邮件总结 本周"。

**场景2**：用户说"怎么配置邮箱？"
→ 阅读 `SETUP.md` 引导配置。

**场景3**：脚本返回 `setup_hint`
→ 告知用户尚未配置或配置无效，按 `SETUP.md` 逐步协助完成 `accounts.json` 配置。

**场景4**：用户说"4月20日到4月22日的邮件，有没有需要回复的"
→ 执行 `04-20 04-22`，重点整理「四、待处理事项」。

