全部 Skill/Resend 交易邮件平台

Resend 交易邮件平台 Skill

Resend 用一个 POST /emails 端点覆盖发送、附件、批量与定时发送,但域名没验证就发信会直接返回 403 硬失败,不会像不少平台那样静默切换到共享测试域名。Node 和 Python 两个官方 SDK 的报错方式还完全相反——一个从不抛异常,一个逢错必抛,照搬另一边的错误处理代码会直接踩坑。

文档版 · 未实测resendapi.resend.comBearer API Key(re_ 前缀),原生 HTTP 调用还必须带 User-Agent 请求头Agent 工具更新 2026-09-21
6份 reference
6个易错点
0条无凭证探测
2026-09-21文档抓取
INSTALL · 安装

安装

选你用的 Agent,复制命令。

npx -y skills add fxp/skillify --skill resend --agent claude-code --yes

装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。

或者让 Agent 自己装

读 https://github.com/fxp/skillify/blob/main/skills/resend/prompt.md 并照它执行

装对了的标志:references/ 下有 6 份文档。

TRY ASKING · 装好后可以这样问

装好后,可以这样问你的 Agent

这份 Skill 覆盖的典型任务。点一下复制。

CAPABILITIES · 能力清单

6 类能力

每类能力对应一份 reference,Agent 按任务只打开需要的那份。

发送邮件

收件人、HTML/纯文本正文、附件(远程 URL 或 Base64)、抄送密送、自定义请求头、定时发送、幂等性 key,以及四个模拟不同结果的测试地址

references/sending-emails.mdPOST /emails · PATCH /emails/{id} · POST /emails/{id}/cancel · GET /emails/{id} · GET /emails

批量发送

一次调用发多达 100 封各不相同的邮件,每项结构和单封发送完全一样但不支持附件,任意一项无效则整批原子性失败

references/batch-sending.mdPOST /emails/batch

域名验证

添加域名拿 DNS 记录、SPF/DKIM/DMARC 配置、发信地区、验证失败的常见原因,以及退信/投诉触发的自动抑制名单

references/domain-verification.mdPOST /domains · POST /domains/{id}/verify · GET /domains · GET /domains/{id} · PATCH /domains/{id} · DELETE /domains/{id}

模板与 React Email

纯 HTML、React Email 组件(仅 Node SDK)、Resend 托管 Template 三种正文构建方式怎么选,以及把 React Email 项目上传成 Template 的流程

references/templates-and-react-email.mdPOST /templates · GET /templates/{id} · POST /templates/{id}/publish

Webhook 事件

送达/退信/投诉/打开/点击等事件类型必须显式订阅才会推送,svix 签名验证,至少一次投递与失败重试计划

references/webhooks.mdPOST /webhooks · GET /webhooks · GET /webhooks/{id} · PATCH /webhooks/{id} · DELETE /webhooks/{id}

错误码与限流

错误响应结构、完整错误类型表、每团队 10 请求/秒的速率限制、免费层每日/每月发送配额、退信率与投诉率上限

references/errors-and-limits.mdGlobal · 10 req/s per team
FACTS · 当前事实

当前事实

整理自官方文档(抓取于 2026-09-21),还没有用真实凭证验证。

项值
Base URLhttps://api.resend.com,只支持 HTTPS,不接受明文 HTTP
鉴权与必带请求头Authorization: Bearer re_xxxxxxxxx;原生 HTTP 调用缺 User-Agent 请求头会返回 403(错误码 1010),和 API key 是否有效无关
发送响应体POST /emails 成功只返回 {"id": "<uuid>"},其余详情要另外调 GET /emails/{id}
硬性数字上限to 最多 50 个地址;POST /emails/batch 单次最多 100 封;附件 Base64 编码后整封邮件 ≤ 40 MB
官方 SDK 包名Node.js 用 npm install resend(导入 { Resend }),Python 用 pip install resend,没有 @resend/node 这种带作用域的包名
速率限制默认 每团队 10 请求/秒,无突发余量,账号下所有 API key 共享同一个池子
GOTCHAS · 易错点

照通用经验写容易错的 6 件事

来自官方文档,还没有用真实凭证验证。

  1. 域名没验证会直接 403 硬失败,不会静默换成共享地址。报错是 validation_error:The `domain.com` domain is not verified...,把它当成普通网络故障重试没有用,因为根因不会随重试次数改变。
  2. Node 和 Python 两个官方 SDK 的报错方式完全相反。Node 的 resend.emails.send() 从不抛异常,只返回 { data, error };Python 的 resend.Emails.send() 失败时直接 raise ResendError,成功时返回值也没有 data/error 结构。把一边的错误处理代码搬到另一边,会导致 catch 块永远进不去,或者读取一个不存在的 error 键时 AttributeError 崩溃。
  3. 批量发送不支持附件,尽管 OpenAPI 规范看起来允许。POST /emails/batch 的 schema 直接复用了单封发送的 SendEmailRequest,里面就有 attachments 字段;但两处独立的文字文档都明确写着批量端点不支持附件。在验证之前以文字文档为准——需要给不同收件人发不同附件,改成循环调用 POST /emails。
  4. template 和 html/text/react 互斥。同一个 POST /emails 请求体里同时传 template.id 和 html(或 text/react)中的任意一个,会返回校验错误——每次发送只能选一种内容模式。
  5. 速率限制按团队算,不是按 API key 或域名。默认每团队 10 请求/秒,同一账号下所有 key 共享同一个池子,也没有任何突发余量;POST /emails/batch(单次最多 100 封)在这个限额里只算一次请求,是官方给出的应对高流量方案。
  6. 免费层每日 100 封的配额按收件人算,不是按调用次数算。一次 to 数组里带 10 个地址的 POST /emails 调用会扣掉 10 封额度,发出和收到都计数,在 UTC 午夜重置(不是滚动 24 小时)。
STATUS · 验证状态

验证状态

文档版:整理自官方文档(抓取于 2026-09-21),还没有用真实凭证调用验证。页面和 Skill 里标「文档原文,未实测」的报错与行为都来自文档本身。

有这个平台的沙箱或 API Key?联系我们——补测并做完装与不装的对照测试后,它会升级为「已实测」。