Files
gxwebsoft 58972885ad fix(email): 统一注册成功邮件模板风格及调用逻辑
- 重写 register-success.html,视觉风格与邮箱验证码邮件对齐
- TenantServiceImpl 开通邮件改为发送 HTML 模板邮件,添加 sendTime 字段
- 修改 EmailTemplateUtil.sendRegisterSuccessEmail 方法签名及实现,传递正确模板变量
- 更新 EmailTestController 中的测试接口参数,支持新模板数据
- 修复 MainController 注册成功邮件调用用错参数导致空字段问题,使用兜底值避免编译错误
- 备注:register-success.html 为首次启用,旧逻辑未使用此模板仅发送纯文本邮件
- 测试方式:通过 POST /api/email-test/register-success?email=xxx 预览邮件渲染效果
2026-08-10 21:56:46 +08:00

2.4 KiB
Raw Permalink Blame History

2026-08-10 工作日志

邮件模板风格统一:注册成功邮件对齐验证码邮件

背景:用户看到两封 WebSoft 邮件风格不统一(企业官网开通成功 vs 邮箱验证码),要求把注册成功模板改成验证码风格。

关键发现(重要)

  • register-success.html 模板此前并未被真实开通流程使用TenantServiceImpl.java 的租户开通逻辑(约 650-673 行)走的是纯文本 emailRecordService.sendEmail(...),且构建的 content 是拼接文本,根本没用 HTML 模板。
  • EmailTemplateUtil.sendRegisterSuccessEmail 原本签名是 (username, phone, password, email, tenantId),只传了这些变量,和模板里的 siteName/siteUrl/adminUrl/account 对不上,所以旧模板这些字段一直为空。
  • MainController.java:1428 的"注册网站平台会员"分支也调用了该方法,属于账号注册场景误用"企业官网开通"模板的历史错配(旧逻辑下邮件大半空白)。

改动

  1. 重写 src/main/resources/templates/register-success.html:对齐 captcha.html 的视觉系统(图片 Logo、.card 圆角灰卡、#1d1d1f 文字、#06c 链接、黑色 pill 登录按钮、发送时间、统一页脚)。变量:siteName, siteUrl, adminUrl, account, password, helpUrl, sendTime
  2. TenantServiceImpl:开通邮件从 sendEmail(纯文本)改为 sendHtmlEmail("register-success.html", data, ...),补传 sendTime(用 DateUtil.now()),并加 try-catch 降级为纯文本(sendHtmlEmail 抛受检异常 MessagingException)。
  3. EmailTemplateUtil.sendRegisterSuccessEmail:签名改为 (siteName, siteUrl, adminUrl, account, password, email, tenantId),正确传模板变量 + sendTime
  4. EmailTestController/register-success 测试端点:更新为传新签名的示例数据。
  5. MainController:1428:用兜底值(siteUrl/adminUrl = https://websoft.topsiteName = username)修复编译,但语义上仍属错配,待产品决策。

验证./mvnw -o -q compile 通过。

待用户决策MainController 的"注册网站平台会员"分支语义是账号注册,是否应为它单独做"账号注册成功"邮件(可能需专用模板),而非复用企业官网开通模板。

测试方式:重新构建启动后,用 POST /api/email-test/register-success?email=xxx 预览真实渲染效果。