PicoBot/skills/lark-mail/references/lark-mail-share-to-chat.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

88 lines
3.0 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 +share-to-chat
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
将邮件以卡片形式分享到飞书 IM 会话(群聊或个人对话)。内部两步完成:创建分享凭证 → 发送卡片到 IM。
**依赖 Scope** `mail:user_mailbox.message:readonly``im:message``im:message.send_as_user`
## 命令
```bash
# 分享单封邮件到群聊(默认 receive-id-type=chat_id
lark-cli mail +share-to-chat --message-id <邮件ID> --receive-id oc_xxx
# 分享整个会话到群聊
lark-cli mail +share-to-chat --thread-id <会话ID> --receive-id oc_xxx
# 通过邮箱分享给个人
lark-cli mail +share-to-chat --message-id <邮件ID> --receive-id user@example.com --receive-id-type email
# Dry Run
lark-cli mail +share-to-chat --message-id <邮件ID> --receive-id oc_xxx --dry-run
```
## 参数
| 参数 | 必填 | 说明 |
|------|------|------|
| `--message-id <id>` | 否(二选一) | 要分享的邮件 ID`--thread-id` 互斥 |
| `--thread-id <id>` | 否(二选一) | 要分享的邮件会话 ID`--message-id` 互斥 |
| `--receive-id <id>` | 是 | 目标接收者 ID类型由 `--receive-id-type` 决定 |
| `--receive-id-type <type>` | 否 | 接收者 ID 类型(默认 `chat_id`)。可选:`chat_id` / `open_id` / `user_id` / `union_id` / `email` |
| `--mailbox <email>` | 否 | 邮箱地址(默认 `me` |
| `--dry-run` | 否 | 仅打印请求,不执行 |
## 返回值
```json
{
"ok": true,
"data": {
"card_id": "550e8400-e29b-41d4-a716-446655440000",
"im_message_id": "om_dc13264520392913993dd051dba21dcf"
}
}
```
## 典型场景
### 场景 1用户说"帮我把这封邮件分享到项目群"
```bash
# Step 1: 搜索群聊获取 chat_id
lark-cli im +chat-search --query "项目群"
# → 获取 chat_id: oc_xxx
# Step 2: 分享邮件
lark-cli mail +share-to-chat --message-id <邮件ID> --receive-id oc_xxx
```
### 场景 2分享整个邮件会话
```bash
lark-cli mail +share-to-chat --thread-id <会话ID> --receive-id oc_xxx
```
### 场景 3通过邮箱分享给个人
```bash
lark-cli mail +share-to-chat --message-id <邮件ID> --receive-id alice@example.com --receive-id-type email
```
## 常见错误
| 症状 | 原因 | 解决 |
|------|------|------|
| `either --message-id or --thread-id is required` | 两个参数都未传 | 传入其中一个 |
| `--message-id and --thread-id are mutually exclusive` | 两个参数同时传 | 只传一个 |
| 403 `user not in chat` | 用户不在目标会话中 | 确认用户是群成员 |
| 404 `message not found` | 邮件 ID 无效 | 确认邮件 ID 正确 |
| 403 `permission not granted` | 缺少 `im:message``im:message.send_as_user` scope | 重新授权:`lark-cli auth login --scope "im:message,im:message.send_as_user"` |
## 相关命令
- `lark-cli im +chat-search` — 搜索群聊获取 chat_id
- `lark-cli mail +message` — 查看邮件内容
- `lark-cli mail +thread` — 查看邮件会话