基于 knowledge-work-plugins 仓库的 Zoom Mail API 完整端点指南:41 个邮件操作与实战集成
【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins
本文是knowledge-work-plugins仓库中 Zoom Plugin 的 REST API 参考技能(rest-api 技能)下 mail.md 的深度展开。它面向需要在 Claude Cowork 等知识工作者场景中通过 Zoom Mail API 自动化邮件处理的开发者,完整覆盖 41 个端点操作、26 个路径模板、10 个标签下的全部能力。读完本文,你将掌握 Zoom Mail API 的端点全景、细粒度授权 scope 映射、草稿与发送、标签与筛选器、委托与假期回复等核心实战模式,并能结合仓库中的认证、限流与排错文档直接落地实现。
Zoom Mail API 在仓库中的定位与数据来源
mail.md是 rest-api 技能下 39 个领域参考文件之一(其余如 meetings.md、phone.md),它的角色是Mail 领域的权威端点清单(endpoint inventory):文档明确声明其镜像了官方 Zoom API Hub 的 OpenAPI 文档(endpoints.json),端点方法(method)与路径(path)直接来自官方paths对象。因此在实现时,应以本文件作为路径命名的权威来源,而将 examples 目录 中的编排模式作为流程参考,不要把编排示例当作路径的权威出处。
该技能的整体导航路径是:先通过plan-zoom-product、plan-zoom-integration或debug-zoom确定方案,再进入 rest-api 技能获取端点级细节(见 SKILL.md)。
基础设施基线
- Base URL:
https://api.zoom.us/v2(所有 Mail 端点均挂在该前缀之下) - 认证:见仓库中的 authentication.md,支持 Server-to-Server OAuth、User OAuth 2.0 与(已弃用的)JWT
- 路径参数约定:所有端点都以
/emails/mailboxes/{email}/...为前缀,{email}是目标邮箱地址;部分端点进一步使用{draftId}、{messageId}、{labelId}、{threadId}、{attachmentId}、{delegateEmail}、{filterId}等资源标识
覆盖规模
| 指标 | 数值 |
|---|---|
| 端点操作(operations) | 41 |
| 路径模板(path templates) | 26 |
| 标签(tags) | 10 |
从源码结构可以推断,mail.md 与 meetings.md(183 操作、128 路径、19 标签)采用同一套生成式清单格式,只是领域不同;两者的 Notes 区块与字段说明完全一致,这印证了该参考文件体系的“镜像 OpenAPI”定位。
前置准备:认证与授权 Scope
所有 Mail 端点都需要 Bearer Token 认证(Authorization: Bearer {access_token}),并绑定特定的授权 scope。仓库中的 authentication.md 与 api-architecture.md 给出了完整指引,这里提炼与 Mail 集成最相关的要点。
两种推荐的认证方式
| 方式 | 适用场景 | Token 有效期 |
|---|---|---|
| Server-to-Server OAuth | 后端自动化、批量处理、无需用户交互 | 1 小时 |
| User OAuth 2.0 | 代表具体用户操作其邮箱 | 1 小时(可刷新,refresh token 最长 15 年) |
获取 S2S token 的标准流程(摘自 SKILL.md 快速开始):
curl -X POST "https://zoom.us/oauth/token" \ -H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=account_credentials&account_id=ACCOUNT_ID"响应中包含access_token、expires_in(通常 3600 秒)与scope字段。注意:S2S 应用不得使用me关键字,必须提供真实邮箱地址或用户 ID——而 Mail 端点路径本身就是邮箱地址,天然契合这一要求。
Mail 领域的授权 Scope
mail.md 中明确提示:每个操作的 scope 名称按操作单独定义,且频繁使用细粒度 scope(granular scope),实现前需到 API Hub 操作页确认精确 scope。仓库的 granular-scopes.md 恰好维护了这份细粒度映射,以下是 Mail 相关操作与 scope 的对应关系(每项均有:admin变体,用于跨账户管理):
| 操作 | 细粒度 Scope |
|---|---|
| List emails from the mailbox | email:read:list_msgs |
| Get the specified email | email:read:msg |
| Create a new email / Send out an email | email:write:msg/email:write:send_msg |
| Update the specified email | email:write:modify_msg |
| Delete an existing email | email:delete:msg |
| Move email to/out of TRASH | email:write:trash_msg/email:write:untrash_msg |
| Batch delete / batch modify emails | email:write:batch_delete_msgs/email:write:batch_modify_msgs |
| List drafts / get draft / create draft / update draft / delete draft / send draft | email:read:list_drafts、email:read:draft、email:write:draft、email:update:draft、email:delete:draft、email:write:send_draft |
| List labels / get / create / update / patch / delete label | email:read:list_labels、email:read:label、email:write:label、email:update:label、email:delete:label |
| List history of events for mailbox | email:read:history |
| Get mailbox profile | email:read:profile |
| Get email attachment | email:read:attachment |
| Vacation response get/update | email:read:setting_vacation/email:update:setting_vacation |
| Delegates list/grant/get/revoke | email:read:list_setting_delegates、email:write:setting_delegate、email:read:setting_delegate、email:delete:setting_delegate |
| Filters list/create/get/delete | email:read:list_setting_filters、email:write:setting_filter、email:read:setting_filter、email:delete:setting_filter |
| Threads list/get/update/delete/trash/untrash | email:read:list_threads、email:read:thread、email:write:thread、email:delete:thread、email:write:trash_thread、email:write:untrash_thread |
同时,仓库 classic-scopes.md 记录了 Mail 的经典聚合 scope:mail:read(读取用户自身邮箱内容)、mail:read:admin(读取账户下所有邮箱及账户级设置)、mail:write(读写用户自身邮箱内容)、mail:write:admin(读写账户下所有邮箱及账户级设置)。设计应用时建议遵循最小权限原则:仅请求实际用到的 scope,细粒度 scope 比经典 scope 更容易通过审核。
环境变量约定
仓库 environment-variables.md 规定了标准.env键:ZOOM_CLIENT_ID、ZOOM_CLIENT_SECRET(必填),ZOOM_ACCOUNT_ID(S2S 模式)、ZOOM_REDIRECT_URI(User OAuth 模式)、ZOOM_WEBHOOK_SECRET(接收事件时);ZOOM_ACCESS_TOKEN、ZOOM_REFRESH_TOKEN属于运行时值。
端点全景:按标签展开 41 个操作
以下各小节完整继承 mail.md 的端点清单,并补充每个标签的典型使用场景与实现提示。
Drafts(草稿,6 个操作)
草稿是“先存后发”工作流的核心,适合需要审批、定时或多次编辑后再发送的场景。
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/drafts | 列出草稿文件夹中的邮件 | list_draft_emails |
| POST | /emails/mailboxes/{email}/drafts | 创建新草稿邮件 | create_draft_email |
| POST | /emails/mailboxes/{email}/drafts/send | 发送草稿邮件 | send_draft_email |
| DELETE | /emails/mailboxes/{email}/drafts/{draftId} | 删除已有草稿 | delete_draft_email |
| GET | /emails/mailboxes/{email}/drafts/{draftId} | 获取指定草稿 | get_draft_email |
| PUT | /emails/mailboxes/{email}/drafts/{draftId} | 更新指定草稿 | update_draft_email |
典型流水线是创建草稿 → 多次 PUT 更新 → POST/drafts/send发送。以创建草稿为例:
curl -X POST "https://api.zoom.us/v2/emails/mailboxes/alice@example.com/drafts" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "subject": "Weekly Sync", "body": {"text": "Hi team, here is the agenda..."}, "to": [{"email": "bob@example.com"}] }'实际请求体字段(收件人、抄送、密送、附件、主题、正文等)以 API Hub 操作页的 schema 为准;实现时可先 GET 一次已有草稿观察响应结构,再据此构造创建请求。
History(历史,1 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/history | 列出邮箱的事件历史 | list_mailbox_history |
该端点用于增量同步场景:类似“最近更改”日志,可用于检测新邮件、已读状态变化、删除等事件。适合与 Webhook 配合,或在无法部署 Webhook 时做低频率的增量轮询(注意限流约束,详见后文限流章节)。
Labels(标签,6 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/labels | 列出邮箱中的标签 | list_labels_in_mailbox |
| POST | /emails/mailboxes/{email}/labels | 创建新标签 | create_label_in_mailbox |
| DELETE | /emails/mailboxes/{email}/labels/{labelId} | 从邮箱删除标签 | delete_label_from_mailbox |
| GET | /emails/mailboxes/{email}/labels/{labelId} | 获取指定标签 | get_label_in_mailbox |
| PATCH | /emails/mailboxes/{email}/labels/{labelId} | 部分更新指定标签 | patch_label_in_mailbox |
| PUT | /emails/mailboxes/{email}/labels/{labelId} | 整体更新指定标签 | update_label_in_mailbox |
标签用于对邮件分类(如 “客户跟进”“报销”),PATCH 与 PUT 并存说明该 API 同时支持部分字段与整体替换两种更新语义。创建标签示例:
curl -X POST "https://api.zoom.us/v2/emails/mailboxes/alice@example.com/labels" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "VIP Clients", "color": "blue"}'Mailbox(邮箱资料,1 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/profile | 获取邮箱资料 | get_mailbox_profile |
用于读取邮箱的显示名、配额等元信息,是初始化界面或校验邮箱有效性的快捷方式(需要email:read:profilescope)。
Messages(邮件,10 个操作)
这是最核心的标签,覆盖邮件的全生命周期。
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/messages | 列出邮箱中的邮件 | list_emails |
| POST | /emails/mailboxes/{email}/messages | 创建新邮件 | create_email |
| POST | /emails/mailboxes/{email}/messages/batchDelete | 批量删除指定邮件 | batch_delete_emails |
| POST | /emails/mailboxes/{email}/messages/batchModify | 批量修改指定邮件 | batch_modify_emails |
| POST | /emails/mailboxes/{email}/messages/send | 发送邮件 | send_email |
| DELETE | /emails/mailboxes/{email}/messages/{messageId} | 删除已有邮件 | delete_email |
| GET | /emails/mailboxes/{email}/messages/{messageId} | 获取指定邮件 | get_email |
| POST | /emails/mailboxes/{email}/messages/{messageId}/modify | 更新指定邮件 | update_email |
| POST | /emails/mailboxes/{email}/messages/{messageId}/trash | 将邮件移入 TRASH 文件夹 | trash_email |
| POST | /emails/mailboxes/{email}/messages/{messageId}/untrash | 将邮件移出 TRASH 文件夹 | untrash_email |
关键设计点:
- 删除 vs 回收站:
DELETE /messages/{messageId}是硬删除;trash_email/untrash_email则是软回收站语义,可在误操作后恢复。面向用户的产品应优先暴露 trash 而非 delete。 - 批量操作:
batchDelete与batchModify允许一次处理多条邮件,能显著减少 API 调用次数——这与 rate-limiting-strategy.md 中“优先批量、避免逐条调用”的建议完全一致。 - 直接发送 vs 草稿:
POST /messages/send直接发送,而 Drafts 标签提供两段式流程。需要“先建后审再发”的合规场景用草稿;低延迟自动化场景直接用send_email。
批量删除示例(请求体为待删除的 messageId 列表):
curl -X POST "https://api.zoom.us/v2/emails/mailboxes/alice@example.com/messages/batchDelete" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"ids": ["msgId1", "msgId2"]}'Messages.Attachments(附件,1 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/messages/{messageId}/attachments/{attachmentId} | 获取指定邮件的指定附件 | get_email_attachment |
需要email:read:attachmentscope。附件 ID 通常来自get_email返回的附件列表;获取时可结合下载场景注意响应可能是文件流或 Base64,以 API Hub schema 为准。
Settings(设置,2 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/settings/vacation | 获取邮箱假期自动回复设置 | get_mail_vacation_response_setting |
| PUT | /emails/mailboxes/{email}/settings/vacation | 更新邮箱假期自动回复设置 | update_mailbox_vacation_response_setting |
用于自动化休假流程——例如员工在日历上的休假事件开始时自动开启假期回复。更新示例:
curl -X PUT "https://api.zoom.us/v2/emails/mailboxes/alice@example.com/settings/vacation" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"enabled": true, "subject": "Out of office", "message": "I will reply after returning."}'Settings.Delegates(委托,4 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/settings/delegates | 列出邮箱上的委托 | list_mailbox_delegates |
| POST | /emails/mailboxes/{email}/settings/delegates | 授予新的邮箱委托访问权限 | grant_mailbox_delegate |
| DELETE | /emails/mailboxes/{email}/settings/delegates/{delegateEmail} | 撤销已有委托访问权限 | revoke_mailbox_delegate |
| GET | /emails/mailboxes/{email}/settings/delegates/{delegateEmail} | 获取指定委托 | get_mailbox_delegate |
委托让助理或团队成员代为处理他人邮箱(如行政助理代管经理邮箱)。{delegateEmail}参数使用被委托人的邮箱地址。
Settings.Filters(筛选器,4 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/settings/filters | 列出邮件筛选器 | list_email_filters |
| POST | /emails/mailboxes/{email}/settings/filters | 创建邮件筛选器 | create_email_filter |
| DELETE | /emails/mailboxes/{email}/settings/filters/{filterId} | 删除指定筛选器 | delete_email_filter |
| GET | /emails/mailboxes/{email}/settings/filters/{filterId} | 获取指定筛选器 | get_email_filter |
筛选器用于自动分类(如按发件人域、关键词移动到指定标签),可视为邮箱内自动化规则的管理接口。
Threads(会话线程,6 个操作)
| 方法 | 端点 | 说明 | 操作 ID |
|---|---|---|---|
| GET | /emails/mailboxes/{email}/threads | 列出邮箱中的邮件线程 | list_email_threads |
| DELETE | /emails/mailboxes/{email}/threads/{threadId} | 删除已有线程 | delete_email_thread |
| GET | /emails/mailboxes/{email}/threads/{threadId} | 获取指定线程 | get_email_thread |
| POST | /emails/mailboxes/{email}/threads/{threadId}/modify | 更新指定线程 | update_email_thread |
| POST | /emails/mailboxes/{email}/threads/{threadId}/trash | 将线程移入 TRASH 文件夹 | trash_email_thread |
| POST | /emails/mailboxes/{email}/threads/{threadId}/untrash | 将线程移出 TRASH 文件夹 | untrash_email_thread |
线程 API 以会话为单位批量操作——例如“整段会话归档”只需一个调用,比逐条处理邮件高效得多。在邮件列表界面,list_email_threads应作为主数据源,配合get_email_thread展示详情。
从端点清单到可运行集成:实战模式
将上述端点组合,可以形成若干可直接落地的自动化模式。
模式一:草稿审批式发送
create_draft_email创建草稿;- 由人工或规则
get_draft_email/update_draft_email审核修改; send_draft_email最终发送。
适合需要合规留痕、双人复核的对外通信场景。
模式二:邮箱清理与归档
list_emails分页拉取(注意使用next_page_token而非旧的page_number,详见 api-architecture.md 与排错文档);- 对过期邮件执行
batchDelete/batchModify或逐条trash_email; - 需要恢复时通过
untrash_email或untrash_email_thread还原。
模式三:自动化处理流程
- 用
list_mailbox_history发现增量变化; - 用
get_email/get_email_attachment读取内容与附件; - 用
create_label_in_mailbox+batch_modify_emails自动打标签; - 用
send_email自动应答或转发。
模式四:委托与假期管理
- 用
grant_mailbox_delegate/revoke_mailbox_delegate管理代管权限; - 用
get_mail_vacation_response_setting/update_mailbox_vacation_response_setting联动休假日历自动切换假期回复。
限流、错误处理与可靠性
Mail 端点同样受 Zoom 全局限流约束,关键事实(见 rate-limiting-strategy.md):
- 限流按账户而非按应用:同一账户下所有应用共享配额,一个重负载应用会影响其他应用;
- 按计划分档:免费版 Light 4 次/秒、Medium 2 次/秒、Heavy 1 次/秒;Pro 为 30/20/10 次/秒;Business+ 为 80/60/40 次/秒;Resource-Intensive 类别单独计算;
- 响应头:每个响应携带
X-RateLimit-Category、X-RateLimit-Type(QPS / Daily-limit)、X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset,日限额场景还有Retry-After; - 重试策略:收到 429 时使用指数退避 + 抖动(jitter),优先读取
Retry-After判断是秒级还是日级限额; - 并发限制:部分资源操作存在单并发约束(如对同一资源并发 DELETE),需要串行化。
对于 Mail 特有的批量场景,尤其要用batchDelete/batchModify代替循环单条调用,把 N 次请求压成 1 次,既省配额又降低 429 风险。诊断 429/401 等错误时可参考 common-errors.md 与 token-scope-playbook.md。
一处使用本参考文件的正确姿势
根据 mail.md 的 Notes 声明,使用本文件时应注意:
- 端点方法与路径以本清单为准,不要从编排示例反推路径名;
- scope 按操作粒度定义,实现前务必核对目标操作对应的细粒度 scope(可对照本仓库 granular-scopes.md);
- 认证实现参考 authentication.md 及 zoom-oauth 技能,完整 OAuth 流程(S2S / User / PKCE / Device Code)见 authentication-flows.md;
- 若构建事件驱动型集成(例如新邮件到达触发处理),可参考 webhook-server.md 与 zoom-webhooks 技能 的模式。
小结
Zoom Mail API 通过 41 个操作覆盖了从草稿、发送、批量管理、标签、线程、附件到委托、筛选器与假期回复的完整邮件自动化面。作为 rest-api 技能中的权威端点清单,mail.md 为端点发现提供了可靠基准;配合本仓库的认证、限流、scope 与排错文档,开发者可以在 Claude Cowork 知识工作流中构建稳定、合规、低配额消耗的邮件自动化能力。
【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考