钉钉邮箱读写、搜索、回复与转发。Use when 用户说发邮件/查邮件/回邮件/转发邮件/未读邮件/邮件搜索/邮箱附件。一句话发邮件时先用 dingtalk-contact 解析并确认收件人,再由本 skill 发送;不做钉钉消息(走 dingtalk-chat)、紧急通知(走 dingtalk-misc)。命令前缀:dws mail。
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
**CRITICAL — 执行任何
dws操作前,MUST 先用 Read 工具完整读取dingtalk-shared。**该轻量文件包含全局执行契约、安全底线及 shared references 的按需加载导航;不要预加载其全部 references。
命令参考:mail.md。复杂搜索、附件、批量处理、草稿等多步邮件场景参考:09-mail.md。
以下 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 | 按关键词或工号搜索邮箱用户(仅企业邮箱) |
| 用户说 | 命令 |
|---|---|
| "发邮件给 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 顺序执行;禁止跳步、替换命令、编造 email/messageId。每条命令必须带
--format json。收件邮箱必须真实解析,禁止猜测。
触发:我的邮箱/发件需要邮箱/查邮件需要邮箱。
dws mail mailbox list --format json,取自己的 email(默认选企业邮箱 type:ORG);查他人邮箱用 dws mail user search --keyword "<姓名>" --format json,禁止用 mailbox list 查他人。禁止:把 mailbox list 当作他人邮箱查询、猜测邮箱地址。
触发:查邮件/搜邮件/某主题邮件/某人发的邮件。
email;用户已明确提供可跳过。dws mail message list --email <邮箱> --limit <n> --format json;KQL 搜索 dws mail message search --email <邮箱> --query "<KQL>" --limit 20 --format json(KQL 如 subject:周报、from:alice@x.com、folderId:2、hasAttachments:true,只通过 --query 传)。dws mail message get --email <邮箱> --id <messageId> --format json;messageId 从列表/搜索结果取,禁止编造。禁止:把 KQL 拆成多个 flag、跳过 message list/search 直接猜 messageId。
触发:发邮件/写邮件/群发。
dws mail mailbox list 取自己邮箱。mail user search 等)获取,禁止猜测。dws mail message send --from <发件邮箱> --to <收件邮箱> --subject "<主题>" --content "<正文>" --format json;按需 --cc/--attachment/--inline-attachment。internetMessageId,执行 dws mail message verify --email <发件邮箱> --internet-message-id <internetMessageId> --format json 查发送状态;不要把普通 messageId 传给 verify。禁止:猜测收件邮箱、发送后不确认状态就答复"已发送"。
触发:回复邮件/回复全部/转发。
messageId 时必须先走 SOP-2 定位原邮件 messageId。dws mail message reply --from <邮箱> --id <messageId> --content "<正文>" --format json;回复全部用 reply-all;转发 dws mail message forward --from <邮箱> --to <收件邮箱> --id <messageId> --content "<附言>" --format json。禁止:未定位原邮件就回复/转发、编造 messageId。
message search 命中后必须继续调用 dws mail message get --email <邮箱> --id <messageId> --format json;不要只列候选后停下。message get;只有同等候选无法判断时才询问用户。message search → attachment list --email <邮箱> --id <messageId> → attachment download --email <邮箱> --message-id <messageId> --attachment-id <attachmentId> --name <文件名>;不存在批量下载命令。dws mail 命令加 --format json,并复用同一封邮件的 messageId,不要重新搜索导致目标漂移。09-mail.md 精确覆盖的命令,直接执行;不要先探测 contact、api、auth、profile、Help 或 Schema。仅在命令真实报参数错误后,读取该命令的 leaf Help 一次。AND,例如收件箱附件邮件:hasAttachments:true AND folderId:2;不要把相邻条件当作隐式 AND。attachment list,下载命中附件并做一次本地存在性/大小检查后停止;若均未命中,只能说明已检查范围并询问是否继续翻页,不能断言不存在。用户要求全部/批量附件时,遍历全部匹配页和邮件,再逐个下载每个附件。dws mail contact create/list,不要切到 dingtalk-contact。只有“按人名解析邮件收件地址”才走下方跨产品协作。date +%H%M%S;只有用户明确要求 HH:mm:ss 等格式时才原样保留。--yes。操作成功后只做一次针对原 ID 或唯一主题的回读,结果符合预期即停止。messageId、contactId 或 internetMessageId 时,后续直接复用返回 ID;不要为了重新定位目标而做宽泛 list/search。dingtalk-contact 取 orgAuthEmaildingtalk-chatDingTalk-Real-AI/dingtalk-workspace-cli
52f38a4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.