# mail +draft-edit > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。 编辑已有的邮件草稿。命令会读取当前原始 EML,应用最小化补丁,然后将更新后的草稿写回。 简单元数据编辑使用直接参数: - `--set-subject` - `--set-to` - `--set-cc` - `--set-bcc` **正文编辑和其他高级操作必须通过 `--patch-file`**。没有 `--set-body` flag。 ### 正文编辑:两个 op 的选择 正文编辑通过 `--patch-file` 传入,有两个 op 可选: | 情况 | op | 行为 | |------|-----|------| | 普通草稿(无引用区) | `set_body` | 替换用户撰写内容 | | 回复/转发草稿,编辑用户撰写部分 | `set_reply_body` | 替换用户撰写部分,自动重新拼接引用区。传入的 value 只包含新的用户撰写内容,**不要包含引用区** | | 回复/转发草稿,编辑引用区内容 | `set_body` | 传入含完整引用区的 HTML 进行替换 | | 用户明确要去掉引用区 | `set_body` | 不包含引用区即可 | **判断方法:** 运行 `--inspect`,若返回 `has_quoted_content: true`,说明草稿包含引用区(由 `+reply` 或 `+forward` 生成)。 **关键区别:** - `set_reply_body` 的 value = **纯用户撰写内容**(不含引用区),引用区会自动重新拼接 - `set_body` 的 value = 可含可不含引用区 **系统托管元素自动保留(两个 op 通用):** 签名块(`lark-mail-signature`)和超大附件卡片(`large-file-area-*`)不属于用户撰写内容,是由 `insert_signature` / `add_attachment` 等 op 管理的草稿级元素。`set_body` 和 `set_reply_body` 都会自动保留它们(普通附件 MIME part 也一样不受正文编辑影响)。若 value 里显式包含相应元素,则尊重用户的显式指定,不再自动注入。删除签名/附件请用对应的专用 op(`remove_signature` / `remove_attachment`)。 ### 正文编辑:plain+HTML 耦合草稿 当草稿同时包含 `text/plain` 和 `text/html` 部分时,它们构成耦合对。`set_body` 和 `set_reply_body` 均更新 HTML 正文并自动重新生成纯文本摘要。此时务必传入 HTML 作为输入,因为原始主正文为 `text/html`。 ## 安全约束 此命令会更新真实草稿。调用前须与用户确认: 1. 草稿 ID 2. 最终收件人范围(To/Cc/Bcc) 3. 最终主题和正文 4. 是否需要附件、内嵌图片或其他高级编辑 ## 命令 ```bash # 编辑草稿元数据(主题、收件人) lark-cli mail +draft-edit --draft-id --set-subject '更新后的主题' --set-to alice@example.com,bob@example.com # 编辑草稿正文(必须通过 patch-file) lark-cli mail +draft-edit --draft-id --patch-file ./patch.json # 查看草稿(只读)— 返回包含 has_quoted_content、attachments_summary 和 inline_summary 的投影 lark-cli mail +draft-edit --draft-id --inspect # 打印补丁模板 lark-cli mail +draft-edit --print-patch-template # Dry Run(仅打印请求,不执行) lark-cli mail +draft-edit --draft-id --set-subject '测试' --dry-run ``` ## 通用参数 | 参数 | 必填 | 说明 | |------|------|------| | `--mailbox ` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。优先于 `--from`。可通过 `accessible_mailboxes` 查询可用邮箱 | | `--draft-id ` | 是 | 目标草稿 ID。仅当单独使用 `--print-patch-template` 时可省略 | | `--set-subject ` | 否 | 用此值替换主题 | | `--set-to ` | 否 | 用此处提供的地址替换整个 To 收件人列表 | | `--set-cc ` | 否 | 用此处提供的地址替换整个 Cc 抄送列表 | | `--set-bcc ` | 否 | 用此处提供的地址替换整个 Bcc 密送列表 | | `--set-priority ` | 否 | 设置邮件优先级:`high`、`normal`、`low`。设为 `normal` 会清除已有优先级 | | `--set-event-summary ` | 否 | 设置日程标题。需同时设置 `--set-event-start` 和 `--set-event-end` | | `--set-event-start