hexo使用valine评论并支持邮件通知
使用valine评论并启用邮件通知
使用hexo来生成静态页面做博客有很多好处,其中一个非常大的好处就是不需要使用自己的服务器省了一大笔钱。但是正是因为是静态网页也有一些不足的地方,例如评论。hexo的评论只能使用第三方的服务,如gitalk使用了github issues来储存评论,而valine使用了leancloud来部署一个后端并储存评论。之前一直使用的是gitalk,但是不是每个人都有github账号,而本主题的作者removeif正好这些天为主题添加了valine的最新评论支持。为了更加方便大家评论,我也决定尝试一下使用valine作为评论插件。
部署valine评论
首先我们要让原版的valine评论正常运行,教程可以查看https://valine.js.org/quickstart.html。


之后因为主题支持,我只需要填上appid和appkey即可。
使valine支持评论邮件通知
原版的valine有个很大的问题,那就是回复了评论之后,之前的评论者无法收到通知…那么评论就失去了意义,因为基本不会有人多次访问一个页面去查看评论是否得到了回复。而valine-admin这个项目增强了valine的功能,给valine增加了smtp服务支持,评论后台管理等功能。

选择云引擎——部署——从git源码部署,然后使用https://github.com/DesertsP/Valine-Admin作为代码库,并在该页面设置好环境变量,有一些必填的变量,如下表。我由于网站使用了根域名,并且使用了cname接入cloudflare,所以没办法再设置mx记录了,所以我没有再用域名邮箱,而失去mail.ru注册了一个邮箱(mail.ru支持域名邮箱,如果之后要换的话也方便)
| 变量 | 示例 | 说明 |
|---|---|---|
| SITE_NAME | Deserts | [必填]博客名称 |
| SITE_URL | https://deserts.io | [必填]首页地址 |
| SMTP_SERVICE | [新版支持]邮件服务提供商,支持 QQ、163、126、Gmail 以及 更多 | |
| SMTP_USER | xxxxxx@qq.com | [必填]SMTP登录用户 |
| SMTP_PASS | ccxxxxxxxxch | [必填]SMTP登录密码(QQ邮箱需要获取独立密码) |
| SENDER_NAME | Deserts | [必填]发件人 |
| SENDER_EMAIL | xxxxxx@qq.com | [必填]发件邮箱 |
| ADMIN_URL | https://xxx.leanapp.cn/ | [建议]Web主机二级域名,用于自动唤醒 |
| BLOGGER_EMAIL | xxxxx@gmail.com | [可选]博主通知收件地址,默认使用SENDER_EMAIL |
| AKISMET_KEY | xxxxxxxxxxxx | [可选]Akismet Key 用于垃圾评论检测,设为MANUAL_REVIEW开启人工审核,留空不使用反垃圾 |

配置好环境变量之后便可以重启/启动容器了。


前往我们之前设置好的web主机域名下设置一个管理员账号 如我的 notesail.avosapps.us/sign-up 记得环境变量也要改
然后由于valine免费版的休眠规则
免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:
- 每天必须休眠 6 个小时
- 30 分钟内没有外部请求,则休眠。
- 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。
所以我们需要添加两个定时器
一个为0 0/30 7-23 * * ?的self_wake规则,即每20分钟醒来一次
另一个为0 0 8 * * ?的resend规则,即每天早上八点补发一次邮件。

之后再重启一次引擎,大功告成,发邮件测试一下吧。
现在用户不需要登陆也能留下评论啦,但是此类评论有个不好的地方就是如果有人乱填邮箱就容易造成一些尴尬的情况,所以还是希望大家都自觉别乱填邮箱。
- 本文标题:hexo使用valine评论并支持邮件通知
- 本文作者:aoyouer
- 本文链接:https://i.notesai.com/posts/valine-admin.html
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!



