评论邮箱限制
有人反复填写占位邮箱,或者直接使用站长邮箱匿名评论时,可以在 插件设置 → 评论邮箱 中启用提交前限制。命中后服务端直接拒绝,不创建主评论或回复;绕过前台 UI、直接调用提交 API 时同样生效。
此功能从 评论组件 Next 1.1.1 开始提供。安装 1.1.1 或更高的兼容版本后,设置中会出现“评论邮箱”。运行环境为 Halo 2.27.0 及以上。
设置项
保存设置后,对后续主评论和回复提交生效,不追溯删除或修改历史评论。关闭本功能不会关闭验证码、现有黑灰名单或其他审核规则。
示例邮箱与假邮箱
默认拦截以下域名及其子域名中的邮箱:
example.com、example.net、example.org。localhost、.example、.test、.invalid。
例如 reader@example.com、reader@sub.example.net、reader@demo.test 会被拒绝。
其他经常出现在自己站点的假邮箱、占位邮箱,可加入“禁止匿名评论的邮箱”。规则采用完整地址精确匹配,忽略大小写和首尾空白;不会扩大为禁用整个邮件服务商。
插件不会因为前缀是 test、admin 或 QQ 邮箱是纯数字就自动判定为假邮箱。真实服务商上的地址可能确实属于正常读者,站长应根据自己站点的情况维护具体名单。
这些规则不执行邮箱所有权验证,也不代表能判断任意地址是否实际存在。若需要处理已登录账号或其他类型的垃圾内容,继续使用账号权限、黑灰名单和评论审核。
防止冒用管理员邮箱
“保护管理员邮箱”自动覆盖:
- 拥有 Halo
super-role的系统超级管理员。 - “徽章设置 → 额外管理员用户”中配置的 Halo 用户。
校验使用这些账号的当前邮箱,忽略大小写和首尾空白;管理员修改邮箱后,下次检查使用新地址。其他运营人员或需要保护的地址,可以手动添加到禁止邮箱名单。
该限制针对匿名提交填写的邮箱。管理员本人登录后,评论使用已经认证的账号身份,可以正常发表评论和回复,不会被这条匿名邮箱规则误拦截。其他已登录用户也沿用其账号身份,仍受 Halo 本身的权限与审核规则约束。
被拒绝后的行为
服务端返回 400,问题类型为:
评论框展示统一提示:
该邮箱不能用于匿名评论,请更换邮箱或登录后重试。
正文草稿与回复目标保留,用户可以更换邮箱或者登录后重试。这个提示表示本次没有创建评论,不是“已提交等待审核”。
管理员邮箱、禁止邮箱名单和具体命中原因不会通过公开配置接口返回给访客,也不会在上述提示中列出。自行接入提交 API 的前端应同样保留草稿并展示提示,详见公开 API。
与黑灰名单的区别
需要阻止某个匿名邮箱继续入库时使用本页功能;需要对更多行为进行审核、拦截或处理历史内容时,结合现有管理能力使用。