核心用法
resend-send-native-node 提供通过 Resend.com HTTPS API 发送邮件的原生 Node.js 方案,无需 OAuth、2FA 或 Gmail 授权。核心命令为 node scripts/send.mjs,配合 --to、--subject、--body 参数使用。
关键安全设计:
- 默认 dry-run:无
--send时仅打印请求负载,不实际发送 - 显式授权开关:
--send参数需配合RESEND_ALLOWED_TO环境变量白名单才能执行真实发送 - 零依赖架构:仅使用 Node.js 18+ 原生
fetch和AbortController
典型工作流:
1. 先生成并审查邮件正文内容
2. 执行 dry-run 查看完整请求负载(含 SHA-256 校验)
3. 获得用户对所有字段(to/cc/bcc/from/reply-to/subject/body)的显式批准后,添加 --send 执行发送
环境变量要求:
RESEND_API_KEY(格式re_...)RESEND_ALLOWED_TO(逗号分隔的收件人白名单)
显著优点
1. 极简依赖:零外部依赖包,代码量小到可直接审计
2. 安全优先设计:fail-closed 默认策略,无白名单时拒绝真实发送
3. 可验证输出:dry-run 和真实发送均输出 body 字节数、SHA-256 哈希,支持内容校验
4. 结构化收据:--json 模式输出机器可解析的 receipt,含 resendId 和完整审计字段
5. 无需 Google 生态:绕过 Gmail OAuth 和 App Password 复杂配置
潜在局限
- 仅发送功能:无法读取邮件、管理收件箱或处理附件
- Resend 账户依赖:需注册 Resend.com,免费额度/定价策略可能变动
- 默认发件人受限:
onboarding@resend.dev仅适合测试,生产需验证自有域名 - 无文件输入:不支持
--body-file,必须通过命令行传参(出于安全审查考虑) - 网络失败歧义:超时/网络错误后无法确定邮件是否已送达,需人工查 Resend 仪表板
适合人群
- 需要快速集成邮件发送的 Node.js 开发者
- 追求极简依赖、可审计代码的安全敏感场景
- 定期报告/通知类自动化(周报、监控告警)
- 希望避开 Gmail OAuth 复杂配置的替代方案寻求者
常规风险
| 风险类型 | 说明与缓解 |
|---------|-----------|
| **误发送风险** | 严格 dry-run → 显式批准 → `--send` + 白名单的三层防护 |
| **身份伪造风险** | 需审查 `from` 字段的 display-name,防止欺骗性发件人名称 |
| **敏感数据泄露** | 禁止直接传输未过滤的内存/日志/工作区上下文,仅发送人工审查后的报告文本 |
| **API 密钥泄露** | 仅通过环境变量读取,命令行和 dry-run 日志中自动脱敏 |
| **重复发送风险** | 网络超时后需先查 Resend 仪表板确认状态,避免盲目重试 |