核心用法
本技能通过 Resend.com 的 HTTPS API 实现纯 Node.js 发信功能,无需任何外部依赖。典型场景包括:用户要求"发邮件""发送报告"或"邮件通知"时,可直接调用脚本完成投递。
基本命令结构:
node "<skill-dir>/scripts/send.mjs" --to "user@example.com" --subject "主题" --body "正文内容"
脚本默认 dry-run,仅打印 JSON payload;必须显式添加 --send 标志才会真实发送。同时强制依赖 RESEND_ALLOWED_TO 环境变量作为收件人白名单,实现 fail-closed 安全设计。
关键安全特性:
- 显式批准机制:需用户明确确认收件人、主题、正文后才可使用
--send - 内容审计:dry-run 时打印正文字节长度与 SHA-256 前缀,便于核对
- 无文件读取:不支持
--body-file,防止意外泄露本地敏感文件 - 无记忆转储:禁止直接发送未过滤的对话记录、日志或工作区上下文
显著优点
1. 极简部署:零 npm 依赖,单文件可审计,Node.js 原生环境即可运行
2. 绕过 OAuth 痛点:无需 Gmail OAuth 流程或 App Password,Resend 免费额度(3,000 封/月)即刻可用
3. 渐进式安全:dry-run → 显式 --send → allowlist 校验的三层防护
4. 灵活格式:支持纯文本与 HTML 双模式,可自定义 from/reply-to
潜在缺点与局限性
- 单向发送:仅支持发信,无法读取邮件或管理收件箱
- 发件人信誉:默认使用
onboarding@resend.dev,易被识别为事务性邮件,不适合正式商务场景 - 无附件支持:当前版本不支持文件附件
- 网络依赖:完全依赖 Resend 服务可用性,无离线队列机制
- 免费额度限制:100 封/天的发送上限可能制约批量场景
适合人群
- 需要快速集成邮件通知的开发者/自动化工作流
- 厌恶 OAuth 复杂配置、偏好 API Key 简单认证的技术用户
- 周报/系统通知等 outbound-only 场景,且内容可预先审核的业务流程
常规风险
- 密钥泄露:
RESEND_API_KEY以环境变量存储,需确保 CI/CD 或本地 shell history 不泄露 - 误发送风险:虽有 allowlist 与 dry-run,但用户若配置宽松白名单(如
*@example.com)仍存在社交工程攻击面 - 发送者欺骗:自定义
--from地址若未在 Resend 后台验证域名,会导致 422 错误,但可能被误解为"可任意伪造" - 速率限制触发:免费 tier 的 100/日限制易被自动化脚本突破,需客户端实现退避重试