评论邮箱限制

有人反复填写占位邮箱,或者直接使用站长邮箱匿名评论时,可以在 插件设置 → 评论邮箱 中启用提交前限制。命中后服务端直接拒绝,不创建主评论或回复;绕过前台 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 邮箱是纯数字就自动判定为假邮箱。真实服务商上的地址可能确实属于正常读者,站长应根据自己站点的情况维护具体名单。

这些规则不执行邮箱所有权验证,也不代表能判断任意地址是否实际存在。若需要处理已登录账号或其他类型的垃圾内容,继续使用账号权限、黑灰名单和评论审核。

防止冒用管理员邮箱

“保护管理员邮箱”自动覆盖:

  1. 拥有 Halo super-role 的系统超级管理员。
  2. “徽章设置 → 额外管理员用户”中配置的 Halo 用户。

校验使用这些账号的当前邮箱,忽略大小写和首尾空白;管理员修改邮箱后,下次检查使用新地址。其他运营人员或需要保护的地址,可以手动添加到禁止邮箱名单。

该限制针对匿名提交填写的邮箱。管理员本人登录后,评论使用已经认证的账号身份,可以正常发表评论和回复,不会被这条匿名邮箱规则误拦截。其他已登录用户也沿用其账号身份,仍受 Halo 本身的权限与审核规则约束。

被拒绝后的行为

服务端返回 400,问题类型为:

https://www.xhhao.com/probs/comment-email-rejected

评论框展示统一提示:

该邮箱不能用于匿名评论,请更换邮箱或登录后重试。

正文草稿与回复目标保留,用户可以更换邮箱或者登录后重试。这个提示表示本次没有创建评论,不是“已提交等待审核”。

管理员邮箱、禁止邮箱名单和具体命中原因不会通过公开配置接口返回给访客,也不会在上述提示中列出。自行接入提交 API 的前端应同样保留草稿并展示提示,详见公开 API。

与黑灰名单的区别

功能生效阶段适用范围
评论邮箱限制评论或回复创建前匿名邮箱的示例地址、管理员保护和精确禁止名单
黑灰名单内容创建后进入插件的安全审核邮箱、IP、用户名、关键词、域名、UA 等规则

需要阻止某个匿名邮箱继续入库时使用本页功能;需要对更多行为进行审核、拦截或处理历史内容时,结合现有管理能力使用。