AI摘要

Typecho 评论邮件通知插件,支持通过 SMTP 自动发送通知。纯 PHP 实现,兼容 Windows,支持多种加密方式。支持自定义模板,发信失败不影响评论,可排除博主评论或仅通知待审核评论。

CommentNotifier 评论邮件通知

适用于 Typecho 1.2 / 1.3 的评论邮件通知插件。当博客收到新评论时,自动通过 SMTP 发送邮件通知博主。

功能特性

  • 收到新评论即发送邮件通知博主
  • 纯 PHP socket 实现 SMTP 协议,不依赖第三方库,Windows 服务器也可用
  • 支持 SSL(465)、STARTTLS(587)、不加密(25)三种连接方式
  • 支持多收件人
  • 自动排除博主自己的评论(登录用户 / 邮箱匹配)
  • 可选「仅待审核评论才通知」
  • 可自定义邮件标题与 HTML 正文模板
  • 邮件标题/正文均做 UTF-8 编码,中文无乱码
  • 发信失败不影响评论正常提交

安装

  1. 将整个 CommentNotifier 目录上传到 Typecho 根目录的 usr/plugins/ 下,即目录结构为:

    usr/plugins/CommentNotifier/Plugin.php
  2. 进入 Typecho 后台 →「控制台」→「插件」。
  3. 找到「CommentNotifier」点击「启用」。
  4. 点击「设置」填写 SMTP 信息。

配置说明

配置项说明
SMTP 服务器地址smtp.qq.comsmtp.163.comsmtp.gmail.com
SMTP 端口SSL 用 465,STARTTLS 用 587,不加密用 25
加密方式推荐 SSL
SMTP 用户名完整发件邮箱地址
SMTP 密码/授权码QQ/163/126 等邮箱填授权码,非登录密码
发件人名称留空则使用博客标题
收件人邮箱博主邮箱,每行一个,支持多个
排除博主自己的评论开启后博主发评论不通知
通知范围全部评论 / 仅待审核评论
邮件标题模板支持变量占位符
邮件正文模板HTML,支持变量占位符

常见邮箱授权码获取

  • QQ 邮箱:设置 → 账户 → 开启「IMAP/SMTP 服务」→ 生成授权码
  • 163 邮箱:设置 → POP3/SMTP/IMAP → 开启「SMTP 服务」→ 设置授权码
  • Gmail:需开启两步验证后生成「应用专用密码」

模板变量

在标题和正文模板中可使用以下占位符:

变量含义
{blogName}博客名称
{title}被评论的文章标题
{author}评论者昵称
{mail}评论者邮箱
{url}评论者网址
{ip}评论者 IP
{text}评论内容
{time}评论时间
{status}评论状态(已通过/待审核)
{permalink}评论链接(含锚点)
{postLink}文章链接

测试方法

  1. 完成配置并保存。
  2. 用另一个浏览器(或无痕窗口,确保未登录博主账号)访问博客任意文章,发表一条评论。
  3. 检查收件人邮箱是否收到通知邮件(注意查看垃圾邮件箱)。

排查

  • 收不到邮件:确认授权码正确、端口与加密方式匹配;检查服务器是否放行对应端口出站;查看邮箱垃圾箱。
  • 评论提交报错:本插件发信失败已被捕获,不会影响评论。若仍报错,请先禁用插件确认是否为本插件引起。
  • 超时:服务器到 SMTP 服务器的网络可能不通,可在服务器上执行 telnet smtp.qq.com 465 测试连通性。

技术实现

插件通过 Typecho_Plugin::factory('Widget\Feedback')->finishComment 钩子挂载到 Typecho 评论完成事件。评论入库后、页面跳转前触发回调,从 Widget\Feedback 实例读取评论数据,经 SMTP 协议发送邮件。所有发信逻辑包裹在 try-catch 中,确保异常不会阻断评论流程。

下载地址

https://github.com/Monarchdos/Typecho-CommentNotifier

投币支持一下吧
END