# LcReplyMailer
**Repository Path**: lczld/LcReplyMailer
## Basic Information
- **Project Name**: LcReplyMailer
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://www.lcbk.cn/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-10-15
- **Last Updated**: 2026-10-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# LcReplyMailer —— Typecho 评论回复邮件通知插件
> Typecho 评论回复邮件通知插件,专为「就是老陈」的 [LcMailer](https://gitee.com/lczld/LcMailer) 适配而生。新评论 / 回复 / @提及 时自动邮件提醒,支持通知文章作者、被回复者、@提及对象与站点管理员。
**作者**:就是老陈 **主页**:https://www.lcbk.cn/ **适用**:Typecho 1.2.0+ / 1.3.0 **依赖**:[LcMailer](https://gitee.com/lczld/LcMailer) **协议**:MIT
---
## 一、功能特性
| 功能 | 说明 |
| --- | --- |
| 启用 / 关闭 | 一键开关整个邮件通知功能 |
| 通知文章作者 | 有新评论时,是否通知文章作者 |
| 通知被回复者 | 有人回复评论时,是否通知被回复的评论者 |
| 通知 @提及对象 | 评论中出现「@用户名」时,自动通知该注册用户 |
| 通知站点管理员 | 有新评论时,是否额外通知站点管理员(邮箱可自定义) |
| 自定义发件人名称 | 通知邮件的发件人显示名可自定义,留空沿用 LcMailer 配置 |
| 后台发送测试邮件 | 设置页填一个邮箱并保存,即发一封测试信验证 SMTP |
| 邮件正文模板可配置 | 新评论 / 回复 / @提及 三套正文均可后台自定义,留空用内置模板 |
| 收件人去重 | 同一邮箱只发一封(如作者同时是管理员不会重复收) |
| 不通知自己 | 评论者不会收到自己评论/自己回复的通知 |
| 异步发送 | 基于 Typecho 异步回调,不阻塞访客评论提交 |
| 待审核可选项 | 默认只通知「已通过」评论;可开启「待审核也通知」(垃圾评论永不通知) |
| 发送日志 | `LcReplyMailer/log/send.log` 记录失败原因,便于排错 |
| 适配 LcMailer | 真正发信由 LcMailer 的 `SendMail` 完成,无需重复配置 SMTP |
---
## 二、环境要求
- PHP 7.4 或 8.x(已在 PHP 8.3 校验)
- Typecho 1.2.0 及以上(含 1.3.0)
- **已安装并启用 LcMailer 插件**,且已在「邮件 → 邮件中心」填好 SMTP 并完成连接测试
> 本插件自身不实现 SMTP,所有发信都委托给 LcMailer。若未启用 LcMailer,插件会给出明确提示且不会发信。
---
## 三、安装
1. **下载**:打开仓库首页,点右上角「克隆/下载」→「下载 ZIP」,得到 `LcReplyMailer-main.zip`。
2. **解压**:解压后得到一个名为 `LcReplyMailer-main` 的文件夹。
3. **改名(关键步骤,别跳过)**:把文件夹 `LcReplyMailer-main` 重命名为 `LcReplyMailer`。
4. 将 `LcReplyMailer` 目录上传至 Typecho 的 `usr/plugins/` 下。
5. 进入 Typecho 后台「控制台 → 插件」,找到 **LcReplyMailer**,点击「启用」。
6. 确保 **LcMailer** 已启用且 SMTP 配置正确(建议先在 LcMailer 里发一封测试邮件验证)。
7. 点击插件下的「设置」,按需勾选通知对象并保存。
> ⚠️ 第 3 步的改名不能省:Typecho 通过插件目录名识别插件,目录必须是 `LcReplyMailer`,否则后台找不到或启用报错。
---
## 四、配置说明
| 配置项 | 可选值 | 默认 | 说明 |
| --- | --- | --- | --- |
| 启用邮件通知 | 开启 / 关闭 | 开启 | 总开关 |
| 通知文章作者 | 通知 / 不通知 | 通知 | 有新评论时通知作者 |
| 通知被回复者 | 通知 / 不通知 | 通知 | 有人回复评论时通知对方 |
| 通知 @提及对象 | 通知 / 不通知 | 通知 | 评论中出现「@用户名」时通知该注册用户 |
| 通知站点管理员 | 通知 / 不通知 | 不通知 | 有新评论时额外通知管理员 |
| 站点管理员邮箱 | 文本 | 空 | 留空则自动取第一个管理员账号邮箱 |
| 自定义发件人名称 | 文本 | 空 | 通知邮件的发件人显示名,留空沿用 LcMailer 配置 |
| 异步发送 | 开启 / 关闭 | 开启 | 关闭则改为同步发送(可能影响评论提交速度) |
| 待审核评论也通知 | 通知 / 不通知 | 不通知 | 开启后待审核评论也发通知;垃圾评论永远不发 |
| 新评论邮件主题模板 | 文本(支持变量) | `{siteTitle} · 新评论:{postTitle}` | 新评论通知的邮件标题,留空用默认 |
| 回复邮件主题模板 | 文本(支持变量) | `{siteTitle} · {commentAuthor} 回复了你的评论(《{postTitle}》)` | 回复通知的邮件标题,留空用默认 |
| 新评论邮件正文模板 | 多行文本(支持变量) | 空 | 留空用内置精美模板 |
| 回复邮件正文模板 | 多行文本(支持变量) | 空 | 留空用内置精美模板,另含 `{{parent*}}` 变量 |
| @提及邮件正文模板 | 多行文本(支持变量) | 空 | 留空用内置精美模板 |
| 发送测试邮件 | 文本 | 空 | 填写邮箱后「保存配置」即发一封测试信 |
### 主题模板变量
| 变量 | 含义 |
| --- | --- |
| `{siteTitle}` | 站点名称 |
| `{postTitle}` | 文章标题 |
| `{commentAuthor}` | 本次评论者昵称 |
| `{parentAuthor}` | 被回复者昵称(仅回复通知可用) |
示例:想把新评论主题改成「博客名|文章名 收到新评论」,填 `{siteTitle}|{postTitle} 收到新评论` 即可。
### 正文模板变量
正文模板填写的是**完整 HTML**,用 `{{变量}}` 占位(所有动态内容均已转义,可安全输出)。**留空则使用内置精美模板**。
| 变量 | 含义 |
| --- | --- |
| `{{siteTitle}}` | 站点名称 |
| `{{siteUrl}}` | 站点地址 |
| `{{postTitle}}` | 文章标题 |
| `{{commentAuthor}}` | 本次评论者昵称(@提及通知中即「提及者」) |
| `{{commentContent}}` | 评论内容(换行已转 `
`) |
| `{{commentMail}}` | 评论者邮箱 |
| `{{avatarUrl}}` | 评论者头像地址 |
| `{{permalink}}` | 该评论的直达链接 |
| `{{date}}` | 评论时间 |
| `{{ip}}` | 评论者 IP |
| `{{parentAuthor}}` | 被回复者昵称(回复通知可用) |
| `{{parentContent}}` | 被回复的原评论内容(回复通知可用) |
| `{{parentAvatar}}` | 被回复者头像(回复通知可用) |
| `{{toName}}` | 本封邮件收件人的昵称 |
最小可用示例(新评论正文):
```html
{{commentAuthor}} 在《{{postTitle}}》评论:
{{commentContent}}