# Dingtalk Mail

钉钉邮箱读写、搜索、回复与转发。Use when 用户说发邮件/查邮件/回邮件/转发邮件/未读邮件/邮件搜索/邮箱附件。一句话发邮件时先用 dingtalk-contact...

- Repository: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli (3872 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-10-29
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add DingTalk-Real-AI/dingtalk-workspace-cli --skill dingtalk-mail -g -a claude-code -y`
Codex: `npx skills add DingTalk-Real-AI/dingtalk-workspace-cli --skill dingtalk-mail -g -a codex -y`
Cursor: `npx skills add DingTalk-Real-AI/dingtalk-workspace-cli --skill dingtalk-mail -g -a cursor -y`
Gemini CLI: `npx skills add DingTalk-Real-AI/dingtalk-workspace-cli --skill dingtalk-mail -g -a gemini-cli -y`

## Description

钉钉邮箱读写、搜索、回复与转发。Use when 用户说发邮件/查邮件/回邮件/转发邮件/未读邮件/邮件搜索/邮箱附件。一句话发邮件时先用 dingtalk-contact 解析并确认收件人，再由本 skill 发送；不做钉钉消息（走 dingtalk-chat）、紧急通知（走 dingtalk-misc）。命令前缀：dws mail。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 钉钉邮箱 Skill

## 前置条件, 执行操作前必读

> **CRITICAL, 执行任何 `dws` 操作前，MUST 先用 Read 工具完整读取 [`dingtalk-shared`](../dingtalk-shared/SKILL.md)。**该轻量文件包含全局执行契约、安全底线及 shared references 的按需加载导航；不要预加载其全部 references。

> 命令参考：[mail.md](references/mail.md)。复杂搜索、附件、批量处理、草稿等多步邮件场景参考：[09-mail.md](references/09-mail.md)。

<!-- VISIBLE_SHORTCUTS_START -->
## Shortcuts（无专用脚本/recipe 时优先）

以下 shortcut 同时进入公开 catalog 与 Runtime Schema。按本 skill/recipe 路由，命中时 Shortcut 优先于原子命令。参数只查 `dws schema --cli-path "mail +<shortcut>" --compact --jq '{cli_path,parameters,constraints,confirmation}' -f json`；仅需且已发布 `result` 时查 `--jq '{cli_path,outcomes:.result.outcomes,pagination}'`，字段级再查 `data_schema`；缺失不以 Help/样例推断。Schema 不可用才读一次已知 leaf Help；`unknown flag` 用同 leaf Help 修正一次。`unknown command` 禁 Help：错误 suggestion → 已加载 Skill/reference 明确入口；均无则报漂移。禁全 Catalog/root/parent/product Help；仅映射、接口或 provenance 审计省略 `--compact`。现有路由和 reference 均无法定位低频能力时，才用 `dws shortcut list --service mail --format json` 发现。

| Shortcut | 风险 | 适用场景 |
|---|---|---|
| `dws mail +find-mail-user` | read | 按关键词搜索邮箱联系人并投影列表（姓名/昵称/邮箱/工号等） |
| `dws mail +folder-list` | read | 列出顶层文件夹或指定父文件夹下的子文件夹 |
| `dws mail +message` | read | 读取一封邮件的完整正文与附件元数据 |
| `dws mail +messages` | read | 按请求顺序读取多封邮件并逐封验证身份 |
| `dws mail +search-mail` | read | 按 KQL 关键词搜索邮件并投影列表（主题/发件人/时间/messageId） |
| `dws mail +thread` | read | 读取完整邮件会话并精确验证 conversationId |
| `dws mail +triage` | read | 列出或筛选邮件摘要，自动解析邮箱与收件箱 |
| `dws mail +user-search` | read | 按关键词或工号搜索邮箱用户（仅企业邮箱） |
<!-- VISIBLE_SHORTCUTS_END -->

## 意图表

| 用户说 | 命令 |
|--------|------|
| "发邮件给 a@b.com" | `dws mail mailbox list --format json` → `dws mail message send --from <邮箱> --to a@b.com --subject "<标题>" --content "<正文>" --format json` |
| "回复 / 全部回复 / 转发" | `dws mail message reply` / `reply-all` / `forward` |
| "今天未读邮件" | `python scripts/mail_unread_summary.py` |
| "带抄送发送" | `python scripts/mail_send_with_cc.py --to a@b.com --cc c@d.com --subject "<标题>" --body "<正文>"` |

## 标准 SOP（必遵流程）

The rest: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/blob/HEAD/skills/multi/dingtalk-mail/SKILL.md
