本篇文章内容主要依据DesertPValine-Admin 项目和微软的 Outlook 邮箱展开。

众所周知,Matery 主题自带的 Valine 评论系统是非常好用的,但是因为 Valine 的轻量特点,导致 Valine 的邮箱提醒功能显得很鸡肋。
甚至到 Valine 1.4.0+ 版本后,直接放弃了这一功能,详情可在官方文档里看到说明。

个人觉得,waline 虽然很优秀,但是对一般人来说很不友好。谁会为了给你个评论专门去注册一个自己不用的账户?

但是, DesertP 大佬开发的 Valine-Admin 及时的弥补了这一缺点。下面来介绍 Valine-Admin 的部署。

一、部署 Valine

要想使用 Valine-Admin,当然得确保 Valine 的部署是可用的啊!这一点本篇文章不做过多的介绍!大家可以去网上找教程部署 Valine。

但是这里还是要说一下,推荐你使用较新版(版本为 1.4.0+ 的)的 Valine.min.js

  1. 在 Matery 主题的 _config.yml 文件中,找到如下代码并像我一样配置(大概在 500 多行位置):
1
2
3
libs:
js:
valine: /libs/valine/Valine.min.js # 若想保持最新版,请替换为 https://unpkg.com/valine/dist/Valine.min.js 默认为 /libs/valine/Valine.min.js
  1. 然后来到 .\themes\hexo-theme-matery\source\libs\valine\ 文件夹,把 Valine.min.js 手动替换成 1.5.0 版本

  2. 最后把主题目录下的 _config.yml 文件里的 Valine 配置信息中的 notifyverify 设置成 false

图1.1 CONFIG 配置

那么 Valine 的准备工作基本做完了!

二、注册 Valine 的管理员邮箱

是的,你没有听错。这里确实需要重新注册一个邮箱,专门用于管理 Valine 评论

如果不注册的话,后面会有个很难受的BUG(后面会细说)。

所以,专门注册一个邮箱用于管理 Valine 评论的发件很有必要。而且建议这个邮箱的密码不要有任何规则(你一般用不到,他就是默认的发件邮箱,相当于别人评论后会通过这个邮箱发送过来),直接键盘乱敲,然后记录下来来提高安全性(这非常重要)。

至于为什么 Outlook 会这么复杂,后面再说。

-> 注册 Outlook 邮箱 <-

记录下 邮箱地址(后面用 xxx@outlook.com 指代)登陆密码,后面会用到。

三、部署 Valine-Admin

  1. 进入 LeanCloud 官网,然后登录,打开之前配置 Valine 创建的应用。

  2. 依次点击云引擎->部署->项目部署->Git部署->配置Git, 然后 Git 的地址填写: https://github.com/DesertsP/Valine-Admin.git/ ,接着再次点击Git部署->部署即可部署分支为 master)。

  3. 设置环境变量,具体可参考下面的表格(表格只列出了部分,因为我是使用 Outlook 邮箱配置的,所以列出的内容针对 Outlook 邮箱的配置。具体可参考官网手册):

变量名说明示例
SITE_NAME[必填] 网站名称SeaYJ’s Blog
SITE_URL[必填] 网站地址,最后不要加/https://seayj.cn
SMTP_USER[必填] SMTP 服务用户名,一般为邮箱地址xxx@outlook.com
SMTP_PASS[必填] SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式xxx@outlook.com 的登陆密码
SMTP_SERVICE[新版支持] 邮件服务提供商,查看所有支持Outlook365
SMTP_HOST[选填] SMTP_SERVICE 留空时,自定义 SMTP 服务器地址smtp-mail.outlook.com
SMTP_PORT[选填] SMTP_SERVICE 留空时,自定义 SMTP 端口587
SMTP_SECURE[选填] 使用 TLStrue
SENDER_NAME[必填] 发件人名称Valine评论管理系统
SENDER_EMAIL[必填] 发件人邮箱xxx@outlook.com
BLOGGER_EMAIL[建议] 博主通知收件邮箱,默认使用 SENDER_EMAILyyy@outlook.com
TEMPLATE_NAME[选填] 设置提醒邮件的主题custom2
AKISMET_KEY[选填] Akismet Key 用于垃圾评论检测,设为 MANUAL_REVIEW 开启人工审核,留空不使用反垃圾xxxxxx
ADMIN_URL[建议] Web 主机二级域名(云引擎域名),用于自动唤醒https://xxx.leanapp.cn/

大家可以参考我的配置(如下图)和上面的表格,然后要填写具体信息。

图3.1 参考配置

补充:

  • 这里要解释一下, yyy@outlook.com 邮箱就是你要用来接收评论的邮箱;
  • 微软的 SMTP 设置可以参考官方的说明;
  • Akismet Key 可以在 Akismet 官网免费申请一个

最好图片列举的都要填写。

  1. 设置完环境变量再次部署即可让其生效。

到此为止, Valine-Admin 已经部署完毕,目前体验还不错。

四、设置定时任务

云引擎>定时任务 里添加如下两个定时任务即可:

图4.1 定时补发任务
图4.2 定时唤醒任务

至此,你的 Valine-Admin 评论系统基本可以正常运作了。

五、一些问题补充

5.1 同时收到两份邮件

原因 1:Leancloud 的密码重置邮件提醒,如果你曾经配置过 valine 自带的邮件提醒(1.4.0+ 不会出现该问题,因为该功能已被官方废弃),会出现两个邮件提醒。
将 Valine 自带的邮件回复提醒关掉即可 notify: false :

1
2
3
4
5
6
7
valine:
enable: true
appId: leancloud application app id
appKey: leancloud application app key
notify: false # valine mail notify (true/false)
verify: true # valine verify code (true/false)
pageSize: 10 # comment list page size

原因 2:博主回复收到两条邮件提醒,因为你为设置 BLOGGER_EMAIL 或设置为了自己的发件邮箱。
环境变量中配置 BLOGGER_EMAIL 为其他邮箱即可

1
BLOGGER_EMAIL  yyy@outlook.com

5.2 安全问题

我原本不清楚该问题,是 @王九弦SZ·Ninty 跟我说明了该问题。

具体问题细节可以参考这篇文章:《关于枫糖博客事件的正面回应

所以,我已经跟换评论模块为 twikoo

参考文章

  1. Valine Admin 邮件回复提醒;
  2. Valine Admin 配置手册 - Deserts