avatar

Valine Admin 留言板

简介

此项目是一个对 Valine 评论系统的拓展应用,可增强 Valine 的邮件通知功能。基于 Leancloud 的云引擎与云函数。可以提供邮件 通知站长@ 通知 的功能,而且还支持自定义邮件通知模板。

点击查看演示

快速开始

Valine官方提供的邮件提醒功能是基于Leancloud的密码重置邮件提醒,操作步骤如下:

进入Leancloud>选择你的评论所存放的应用>设置>邮件模板,按下图设置好用于重置密码的邮件主题>然后保存:

修改邮件主题:你在 的评论收到了新的评论

修改内容:将下面的代码复制到“内容”中,并将其中的你的网址首页链接改为你的网址首页链接。

img

1
2
3
4
5
<p>Hi, {{username}}</p>
<p>
你在 {{appname}} 的评论收到了新的回复,请点击查看:
</p>
<p><a href="你的网址首页链接" style="display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: #3090e4; color: #fff; text-decoration: none;">马上查看</a></p>

点击“保存”按钮

修改主题配置文件搜索valine(快速定位),将其中的false改为true

1
2
3
4
5
6
7
8
9
10
11
12
valine:
enable: true # if you want use valine,please set this value is true
appId: # leancloud application app id
appKey: # leancloud application app key
notify: false # valine mail notify (true/false) https://github.com/xCss/Valine/wiki
verify: true # valine verify code (true/false)
pageSize: 10 # comment list page size
avatar: monsterid # gravatar style https://valine.js.org/#/avatar
lang: zh-cn # i18n: zh-cn/en
placeholder: Please leave your footprints # valine comment input placeholder(like: Please leave your footprints )
guest_info: nick,mail,link #valine comment header info
bg: /img/comment_bg.png # valine background

注意事项

  • 发送次数过多,可能会暂时被Leancloud 屏蔽邮件发送功能
  • 由于邮件提醒功能使用的Leancloud的密码重置邮件提醒,只能传递昵称邮箱两个属性,所以邮件提醒链接无法直达指定文章页请悉知
  • 开启邮件提醒会默认开启验证码选项。
  • 该功能目前还在测试阶段,谨慎使用。
  • 目前邮件提醒正处于测试阶段,仅在子级对存在邮件地址的父级发表评论时发送邮件

第三方支持

这里重点讲一下第三方邮件提醒Valine-Admin

这也先需要将Valine的评论功能成功跑起来。

然后进入 Leancloud 对应的 Valine 应用中。

点击 云引擎 -> 设置 填写代码库并保存:https://github.com/zhaojun1998/Valine-Admin

img

切换到部署标签页,分支使用 master,点击部署即可:

img

img

设置云引擎的环境变量

img

必选参数

  • SITE_NAME : 网站名称。
  • SITE_URL : 网站地址, 最后不要加 / 。
  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
  • SMTP_SERVICE : 邮件服务提供商,支持 QQ163126Gmail"Yahoo"...... ,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器
  • SENDER_NAME : 寄件人名称。

由于我使用的是我自己的企业邮箱,所以这边的SMTP_SERVICE就不适用了,需要用这三个参数替换:SMTP_HOSTSMTP_PORTSMTP_SECURE

详细说明如下:

  • SMTP_HOST : 邮件服务提供商 SMTP 地址,如 qq : smtp.qq.com此项需要自行查询或询问其服务商
  • SMTP_PORT : 邮件服务提供商 SMTP 端口, 此项需要自行查询或询问其服务商
  • SMTP_SECURE : 是否启用加密, 默认为 true,一般不需要设置,如有特殊请自行配置。 此项需要自行查询或询问其服务商

如果也同我一样使用阿里云企业邮箱,SMTP_HOSTSMTP_PORTSMTP_SECURE可以照我的写。

可以看到上图中,我的自定义环境变量还多了2个,分别是:

  • TO_EMAIL:这个是填收邮件提醒的邮箱地址,若没有这个字段,则将邮件发到SMTP_USER
  • TEMPLATE_NAME:设置提醒邮件的主题,目前内置了两款主题,分别为 defaultrainbow。默认为 default

Web 评论管理

此项目还为 Valine 提供了更方便的评论管理功能,可以在 web 端对评论进行查看与删除操作。配置方式如下。

img

后台登录需要账号密码,需要在这里设置,只需要填写 emailpasswordusername,这三个字段即可, 使用 email 作为账号登陆即可。(为了安全考虑,此 email 必须为配置中的 SMTP_USERTO_EMAIL, 否则不允许登录)

img

Web 后台目前仅有 查看删除 功能

LeanCloud 休眠策略

免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:

  • 每天必须休眠 6 个小时
  • 30 分钟内没有外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。

分析了一下上方的策略,如果不想付费的话,最佳使用方案就设置定时器,每天 7 - 23 点每 20 分钟访问一次,这样可以保持每天的绝大多数时间邮件服务是正常的。

Linux crontab 定时器代码:

1
*/20 7-23 * * * curl https://你配置的域名前缀.leanapp.cn

注意, LeanCloud 最近更新了定时器校验规则, 需要将 Cron 表达式写为: 0 */20 7-23 * * ?

更新新版本与更改环境变量均需要重启容器后生效。

重启容器

img

邮件通知展示

游客 A 评论,站长收到邮件 :

( rainbow 主题)

img

游客被 @ 收到的邮件 :

img

rainbow 彩虹主题

文章作者: Wu Fei
文章链接: http://linuxwf.com/2020/04/09/Valine-Admin-%E7%95%99%E8%A8%80%E6%9D%BF/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WF's Blog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论