PicoBot/.agents/skills/lark-mail/references/lark-mail-messages.md
ooodc a7883dbed9 refactor(todo): 重构待办事项管理逻辑及更新状态规则
- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段
- 强制每个任务都必须有唯一 id,且由用户负责生成
- 修改合并模式逻辑,merge=true 下保留未提及的旧任务
- 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress)
- 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled
- 优化状态转换校验,允许特定状态间合法切换
- 简化任务变更消息,移除详细的新增/更新/移除统计
- 更新文档和示例,明确 id 必须由用户生成和使用
- 修复和补充测试,增强状态转换和合并模式验证
- 调整任务时间戳生成逻辑,统一使用当前时间及索引
- 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
2026-06-13 09:22:33 +08:00

109 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# mail +messages
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
通过传入逗号分隔的 `message_id` 列表,一次性读取多封邮件的完整内容。
超过 20 个 ID 可以直接传入 CLICLI 会按 20 个 ID 自动拆批并合并输出,不需要手动拆批,也不要逐封循环调用 `+message`
本 shortcut 是 `mail +message` 的批量版本。每个返回的 `messages[]` 项使用与 `+message` 相同的归一化结构:安全元数据字段直接透传,正文和辅助字段由 shortcut 派生。
优先使用本 shortcut因为
- 正文字段已 base64url 解码
- 每条邮件的输出结构已归一化
- 不可用的 message ID 会被显式列出
本 skill 对应 shortcut `lark-cli mail +messages`;每条返回的邮件使用与 `+message` 相同的规则归一化输出。
## 命令
```bash
# 读取多封邮件(默认包含 HTML 正文)
lark-cli mail +messages --message-ids <id1>,<id2>,<id3>
# 仅纯文本正文(更小的负载,适合 AI 处理)
lark-cli mail +messages --message-ids <id1>,<id2>,<id3> --html=false
# 指定邮箱
lark-cli mail +messages --mailbox user@example.com --message-ids <id1>,<id2>
# JSON 输出
lark-cli mail +messages --message-ids <id1>,<id2> --format json
# Dry Run
lark-cli mail +messages --message-ids <id1>,<id2> --dry-run
```
## 参数
| 参数 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `--message-ids <id1>,<id2>,<id3>` | 是 | — | 逗号分隔的邮件 ID 列表;超过 20 个 ID 时 CLI 自动按 20 拆批并合并输出 |
| `--mailbox <email>` | 否 | 当前用户 | 邮箱地址(`user_mailbox_id` |
| `--html` | 否 | true | 是否返回 HTML 正文(`false` 仅返回纯文本,减少带宽) |
| `--format <mode>` | 否 | json | 输出格式:`json`(默认)/ `pretty` / `table` / `ndjson` / `csv` |
| `--dry-run` | 否 | — | 仅打印请求,不执行 |
## 返回值
成功时返回 `{"ok": true, "data": ...}` 结构,`data` 字段包含:
```json
{
"messages": [
{ "...与 +message 输出结构相同..." }
],
"total": 1,
"unavailable_message_ids": ["msg-2"]
}
```
顶层字段:
| 字段 | 说明 |
|------|------|
| `messages` | 返回的邮件列表,顺序与请求的 `--message-ids` 一致,排除 API 未返回的 ID |
| `total` | 成功返回的邮件数量 |
| `unavailable_message_ids` | 请求了但 Mail API 未返回详情的 ID 列表 |
每个 `messages[]` 项使用与 [`mail +message`](./lark-mail-message.md#返回值) 相同的结构。完整字段列表参见 [`+message` 字段说明](./lark-mail-message.md#字段说明) 和 [`+message` security_level](./lark-mail-message.md#security_level)。
> 注意:使用 `--format json` 获取结构化输出。所有 JSON 输出统一包裹在 `{"ok": true, "data": ...}` 结构中。
## 注意事项
- **JSON 输出可直接使用**,可直接读取,无需额外编码转换。
- 只需读取一封邮件时请使用 `+message`
- CLI 每 20 个 ID 拆成一次调用并合并输出,不需要为大列表手动拆请求。
- JSON 输出中 `messages[].body_html` 里的 `<` / `>` 可能显示为 `\u003c` / `\u003e`JSON 安全转义,内容不变,`jq -r` 可还原)。
- `mail +messages` 仅返回附件元数据。如后续步骤需要下载 URL请针对特定的 `message_id``attachment_ids` 调用原生附件 URL API。
-`+message` 一样,普通附件和内嵌图片都出现在 `messages[].attachments[]` 中,使用同一个 `user_mailbox.message.attachments download_url` API。
## 典型场景
### 批量摘要多封已知邮件
```bash
# 一次性读取多封邮件
lark-cli mail +messages --message-ids <id1>,<id2>,<id3> --html=false --format json
# 让 LLM 分析 .data.messages[].body_plain_text 并生成分组摘要
```
### 对比多封邮件内容后决策
```bash
# 获取多封邮件的归一化输出
lark-cli mail +messages --message-ids <id1>,<id2> --html=false --format json
# 检查 subject/from/body_preview 或 body_plain_text对比意图和下一步操作
```
## 相关命令
- `lark-cli mail +message` — 读取单封邮件
- `lark-cli mail +thread` — 读取会话中所有邮件
- `lark-cli mail +reply` — 回复邮件
- `lark-cli mail +forward` — 转发邮件
- `lark-cli mail user_mailbox.message.attachments download_url` — 按需获取邮件附件/图片下载 URL