认证中心
← 全部文档与搜索
独立页面 ↗下载 Markdown

注册与 SMTP

注册邮箱验证默认关闭,与开放邮箱账号注册、注册码要求分开配置。未启用验证时,注册不需要发送或填写验证码,邮箱保存为未验证。用户登录后可在「个人资料 → 头像与邮箱」验证当前登录邮箱;密码找回、更换邮箱也要求验证邮箱。

全新数据库首个成功注册账号自动获得 user 和 admin 角色。判断、创建账号、角色授权和注册码核销在同一事务内完成;并发注册只有一个首任管理员,失败事务不会占用首任资格。已有账号不会因升级自动提权,已有站点可用 grant-admin 命令补授指定账号。

管理员在系统设置的 SMTP 发信服务中填写已有服务商的主机、端口、发件邮箱、账号和密码或授权码。支持 STARTTLS 与隐式 TLS,均验证服务商证书。无需部署邮箱服务器。配置加密保存、密码不回显;主机和账号不变时,密码留空保留原值。更换主机或账号需要重新填写密码,避免把旧凭据发送给新主机。配置保存后即时生效,不再读取旧 SMTP 环境变量,不默认连接 Mailpit。

未配置 SMTP 时不能开启注册邮箱验证。保存配置只检查字段完整性,不代表服务商已接受凭据或实际邮件已送达。

升级先执行 ./scripts/run-local.ps1 -Mode migrate,应用 006 迁移,再按 本机启动说明(仓库文件:local-running.md) 执行 ./scripts/run-local.ps1 -Mode api,前端运行 npm run dev。

本机验证

2026-09-09 已检查现有容器状态和端口映射,使用 Postgres18 与 RedisPwd。Go 测试在本机运行,使用 PostgreSQL 随机隔离 schema 和 Redis 唯一测试 key;测试完成已清理,未修改业务表或容器。

  • 从忽略文件中的连接信息设置 TEST_DATABASE_URL、TEST_REDIS_URL 后,运行 ./scripts/run-local.ps1 -Mode test:Go 测试、go vet 通过。
  • 新增 TestRegistrationIntegration:验证默认免验证码、4 个并发注册仅一个管理员、未验证标志、登录后验证当前邮箱、无 SMTP 不能启用验证、SMTP 权限和密码保密、留空保留密码、验证码消费及重放拒绝、关闭注册。
  • ./scripts/run-local.ps1 -Mode build:后端构建通过。
  • web 目录执行 npm run typecheck、npm run build:通过。

未执行真实服务商 SMTP 认证和公网投递测试,未执行依赖旧 Mailpit 的历史 Compose 测试。最终业务数据库迁移及运行进程重启由当前本机启动任务统一处理。