feat:移除了弹窗,服务器添加sls

This commit is contained in:
2026-09-08 22:39:45 +08:00
commit 6a295f9a7a
4082 changed files with 1322534 additions and 0 deletions

View File

@ -0,0 +1,54 @@
# mail templates
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
邮件模板指飞书 OAPI 的个人邮件模板系统(用户邮箱里的"我的模板"),可在飞书客户端管理。它不同于仓库 [`../assets/templates/`](../assets/templates/) 下的静态 HTML 模板库;静态 HTML 模板只是在写单封邮件时可复制参考的本地素材。
## 何时使用
- 创建 / 更新长期复用的邮件框架:用 `+template-create` / `+template-update`
- 使用已有模板发信:在 `+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 中传 `--template-id <id>`
- 列表 / 获取 / 删除个人模板:走原生 API `user_mailbox.templates {list|get|delete}`
## 管理模板
- [`+template-create`](lark-mail-template-create.md) — 创建新模板。`--name` 必填;正文通过 `--template-content``--template-content-file` 二选一;支持 HTML 内嵌图片自动上传到 Drive。
- [`+template-update`](lark-mail-template-update.md) — 全量替换式更新(**后端无乐观锁last-write-wins**)。支持 `--inspect`(只读 projection/ `--print-patch-template`patch 骨架)/ `--patch-file`(结构化 patch/ 扁平 `--set-*` flag。
## 套用模板
`+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 均支持 `--template-id <id>``--template-id` 必须是**十进制整数字符串**。
### 创建模板后立即发信 checklist
1. `+template-create --as user --name <name> --subject <subject> --template-content <html>`,捕获真实 `template_id`
2. 用户要求发送时不要停在模板或草稿:`+send --as user --to <email> --template-id <template_id> --confirm-send`;只有需要覆盖模板主题时再传 `--subject`
3. 返回 `message_id` 后调用 `user_mailbox.messages send_status` 汇报投递状态。
## 合并规则
| # | 场景 | 合并策略 |
|---|------|----------|
| Q1 to/cc/bcc | 全部 5 个 shortcut | 用户 `--to/--cc/--bcc` 先覆盖草稿原有值,再与模板 tos/ccs/bccs **无去重追加** |
| Q2 subject | `+send` / `+draft-create` | 用户 `--subject` > 草稿 subject > 模板 subject |
| | `+reply` / `+reply-all` / `+forward` | 用户 `--subject` 覆盖自动 Re:/Fw:;否则保持 Re:/Fw: + 原邮件 subject。**模板 subject 被忽略**(保留会话线索) |
| Q3 body | `+send` / `+draft-create` | 空草稿 body → 用模板;非空 HTML → `draftBody + <br><br> + tplContent`;非空 plain-text → `\n\n` 拼接 |
| | `+reply` / `+reply-all` / `+forward` | 模板内容注入 `<blockquote>` 之前;无 blockquote 则追加plain-text 模板走 emlbuilder plain-text 追加 |
| Q4 附件 | 全部 5 个 shortcut | 模板 inlineSMALL由 CLI 走 `user_mailbox.template.attachments.download_url` 下载后以 MIME part 注入SMALL 非 inline 同样注入LARGE`attachment_type=2`)不下载,只把 `file_key` 放到 `X-Lms-Large-Attachment-Ids` header 让服务端渲染下载卡片 |
| Q5 cid 冲突 | inline 图片 | cid 由 UUID v4 生成(碰撞概率 ~ 2^-122不显式检测 |
**Warning**`+reply` / `+reply-all` + 模板且模板自带 tos/ccs/bccs 时CLI 在 stderr 打印:`warning: template to/cc/bcc are appended without de-duplication; you may see repeated recipients. Use --to/--cc/--bcc to override, or run +template-update to clear template addresses.`
## Size 约束
- 单模板 `template_content` <= 3 MB。
- `body + inline + SMALL` 累计 <= 25 MB。
- 超过 25 MB 后,该批次剩余非 inline 附件切换为 LARGEinline 不能切换。
## 原生 API
```bash
lark-cli mail user_mailbox.templates list --params '{"user_mailbox_id":"me"}'
lark-cli mail user_mailbox.templates get --params '{"user_mailbox_id":"me","template_id":"<id>"}'
lark-cli mail user_mailbox.templates delete --params '{"user_mailbox_id":"me","template_id":"<id>"}'
```