ObjectOS
配置

邮件

配置事务性邮件投递的 Provider 和模板。

邮件

当应用需要时(密码重置、邀请、审批通知、定时报告),ObjectOS 通过框架的邮件插件发送事务性邮件。该插件内置三种传输方式。

传输方式

Provider适用场景必需环境变量
log本地开发;将邮件打印到 stdout 而不实际发送
resend通过 Resend 实现 SaaS 投递OS_EMAIL_API_KEY
postmark通过 Postmark 实现 SaaS 投递OS_EMAIL_API_KEY

默认是 log。当配置了真实 Provider 但未提供 API Key 时,ObjectOS 会回退到 log 传输——便于让非生产环境不会意外发出邮件。

关于 SMTP

运行时目前内置原生 SMTP 传输。如果你的环境必须使用 SMTP(企业中继、本地邮件、内网/离线部署),有两种生产级方案:

  1. 在 ObjectOS 前部署 SMTP-to-API 中继。 Resend、Postmark 以及自托管替代品(Postal、Cuttlefish)都能接收 SMTP 并通过其 HTTP API 重新投递 —— ObjectOS 仍照常用 HTTPS 与它们交互。
  2. 以自定义邮件插件运行运行时。 邮件插件 API 很小(一个 send(message) 函数);在项目插件中包装 nodemailer,通过 requires 列表接入。参见 spec 仓库中的 插件开发指南

原生 SMTP 传输在 roadmap 中;进展见 github.com/objectstack-ai/objectos/issues

环境变量

变量用途
OS_EMAIL_PROVIDERlogresendpostmark
OS_EMAIL_API_KEYProvider API Key(Resend 或 Postmark)
OS_EMAIL_FROM默认发件人。支持 addr@xName <addr@x> 两种格式
OS_EMAIL_RETRIES发送失败的传输重试次数(默认 0

环境变量优先于 artifact 中 email 配置块的同名值,因此运维可以无需重建 artifact 即可重定向投递。

模板

可复用模板存放在 sys_email_template。模板支持框架模板引擎评估的变量插值。应用代码(或流程)以模板 id 和变量包调用邮件服务;服务渲染主题/正文并交给配置的传输方式。

验证投递

对 Resend / Postmark,验证发送域名已在 Provider 控制台中配置(SPF、DKIM,可选 DMARC)。最快的端到端检查是邮件设置页的 Send test email 操作——它使用真实传输方式并把传输错误就地呈现。

运维建议

  • 把 API Key 当作 secret。存于客户的 secret manager,永不放入 artifact。
  • 关注传输错误日志:Provider 限流、抑制名单与退信都会出现在那里。
  • 对审计敏感的事务邮件(密码重置、MFA 挑战)应按客户策略保留——在审计日志上设置保留期,而不是在传输层。
  • 出站邮件不阻塞业务事务:发送失败会被报告为错误,但不会回滚触发邮件的记录变更。

On this page