邮件发送通知
详情介绍
一、插件简介
邮件发送(mail)面向社区站点,提供独立 SMTP 发信、邮件模板管理与发送记录。用于注册邮箱验证码、找回密码、绑定/更换邮箱验证,以及注册欢迎信。
适合需要邮箱验证、密码找回、用户触达的场景。
- 前台入口:注册页、找回密码页、账号设置绑定邮箱(发送验证码按钮)
- 后台入口:插件列表 → 邮件发送(
/admin/mail) - 主要接口(伪静态后缀下同):
POST /mail/sendCode— 发送邮箱验证码
二、核心能力
| 能力 | 说明 |
|---|---|
| SMTP 发信 | 独立配置 SMTP,亦可回退站点「邮件配置」 |
| 注册验证码 | 开启后注册须验证邮箱 |
| 找回密码 | 邮箱验证码重置密码 |
| 绑定邮箱 | 更换/绑定邮箱须验证新邮箱 |
| 欢迎信 | 注册成功后发送欢迎邮件 |
| 模板管理 | 后台维护 HTML 模板与变量 |
| 发送记录 | 查看成功/失败日志 |
| 安全限制 | 验证码有效期、发送间隔、每日上限 |
| 邮箱验证字段 | 自动为用户表添加 email_verified 列 |
三、依赖与安装
建议环境:
- 可用的 SMTP 服务(企业邮箱、SendGrid、阿里云邮件等)
- 社区注册/登录/账号设置流程(插件通过钩子接入)
安装步骤:
- 应用中心安装并启用 邮件发送
- 进入 邮件发送 → SMTP配置,填写服务器、端口、账号密码
- 点击「发送测试」确认可达
- 在应用中心开启所需验证码场景与欢迎信
- 检查 模板管理 中默认模板是否满足需求
- 走通注册/找回/绑定全流程
数据表:
{prefix}mail_template— 邮件模板{prefix}mail_log— 发送记录{prefix}mail_code— 验证码
默认模板标识: register、reset、bind、welcome
四、应用中心基础配置
路径:应用中心 → 邮件发送 → 配置
| 配置项 | 说明 | 建议 |
|---|---|---|
| 启用邮件发送 | 总开关;关闭后不发送任何邮件 | 保持开启 |
| 注册邮箱验证码 | 开启后注册必须验证邮箱 | 建议开启 |
| 找回密码验证码 | 找回密码需邮箱验证码 | 建议开启 |
| 绑定邮箱验证码 | 绑定/更换邮箱需验证 | 建议开启 |
| 注册欢迎信 | 注册成功后发送欢迎邮件 | 按需 |
SMTP 主机、端口、账号等完整参数在后台 邮件发送 → SMTP配置 页维护(saveAdminConfig 会同步到站点「邮件配置」)。
五、后台重点配置
路径:插件列表 → 邮件发送
5.1 SMTP 配置(/admin/mail)
| 项 | 说明 | 默认 |
|---|---|---|
| smtp_host | SMTP 服务器 | — |
| smtp_port | 端口 | 465 |
| smtp_user / smtp_pass | 账号密码 | — |
| smtp_secure | none / ssl / tls | ssl |
| smtp_from | 发件人地址 | 默认同账号 |
| smtp_from_name | 发件人名称 | 站点名 |
| code_ttl | 验证码有效期(秒) | 600 |
| code_interval | 同邮箱发送间隔(秒) | 60 |
| code_daily | 每日同邮箱上限 | 10 |
smtpReady 条件: 插件启用 + host + user + pass 均已配置(插件或站点配置均可)。
5.2 模板管理(/admin/mail/template)
支持变量:{site_name} {username} {nickname} {email} {code} {expire_minutes} {time}
| 模板 code | 用途 |
|---|---|
| register | 注册验证码 |
| reset | 找回密码 |
| bind | 邮箱绑定 |
| welcome | 注册欢迎信 |
5.3 发送记录(/admin/mail/log)
查看每封邮件收件人、模板、状态、错误信息;支持删除与清空。
六、前台用户流程
注册
- 用户填写邮箱,点击获取验证码(
POST /mail/sendCode,scene=register) - 收到邮件填入验证码完成注册
- (可选)注册成功后收到欢迎信
找回密码
- 输入注册邮箱,获取验证码(scene=reset)
- 验证通过后设置新密码
绑定邮箱
- 登录后在账号设置填写新邮箱
- 获取验证码(scene=bind)并提交绑定
email_verified标记更新
七、后台审核与运维
| 操作 | 说明 |
|---|---|
| 发送测试 | 验证 SMTP 连通性 |
| 模板编辑 | 调整标题与 HTML 正文 |
| 模板启停 | 停用后该场景不发信 |
| 日志排查 | 查看失败原因(认证、被拒、超时等) |
| 同步站点配置 | 保存 SMTP 时自动写入 SiteConfig |
八、特殊说明
配置回退: 插件 SMTP 字段为空时,自动读取站点配置 mail_smtp_*、mail_from 等。
needRegisterCode: 插件开关开启,或站点 user_email_verify=1 时均需注册验证。
用户表迁移: 安装时添加 email_verified 列,已有邮箱用户默认标为已验证。
场景常量: SCENE_REGISTER、SCENE_RESET、SCENE_BIND
九、推荐上线清单
- 配置并测试 SMTP
- 开启所需验证码场景
- 检查四套默认模板文案
- 设置合理的 TTL、间隔与每日上限
- 测试注册 → 欢迎信 → 找回密码 → 绑定邮箱
- 查看发送记录确认无异常
十、常见问题
Q:发不出邮件? 检查 SMTP 参数、防火墙端口、发件人是否被服务商限制;查看发送记录错误信息。
Q:注册不要验证码但仍提示? 关闭「注册邮箱验证码」,并检查站点 user_email_verify 是否仍为 1。
Q:验证码收不到? 查垃圾邮件;确认模板启用;检查是否触发间隔/每日上限。
Q:插件配置与站点邮件配置关系? 插件优先,空值回退站点配置;保存插件配置会同步到站点。
Q:卸载会删用户邮箱验证状态吗? 卸载删插件表,但 email_verified 列保留。
更新记录 (1)
-
v1.0.1
2026-08-24
首次发布